根据Django REST Framework docs,将default=CreateOnlyDefault(<arg>)传递给序列化器字段


  只能用于在创建操作期间设置默认参数。在更新期间,该字段被忽略。
  
  它采用一个参数,这是在创建操作期间应使用的默认值或可调用参数。


这与声明read_only=True, default=<arg>有何不同,在其中声明要传递给<arg>的单个参数是CreateOnlyDefault

最佳答案

使用CreateOnlyDefault时,该值将仅在创建时使用,而不在更新时使用。

例如:

class MySerializer:
    created = serializers.DateTimeField(
        read_only=True,
        default=serializers.CreateOnlyDefault(timezone.now)
    )
    modified = serializers.DateTimeField(
        read_only=True,
        default=timezone.now
    )


使用该序列化程序,modified字段将在每次更新时进行更新,而created字段在创建后将保持不变。

关于python - Django REST框架:CreateOnlyDefault的目的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43917135/

10-14 03:00