根据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/