http://www.django-rest-framework.org/api-guide/validators/#currentuserdefault
我想自动从userprofile
读取默认值。现在,官方方法支持User
和DateTime
。但我想要我的定制价值。我怎么能这样做?
owner = serializers.HiddenField(
default=serializers.CurrentUserDefault()
)
答案 0 :(得分:1)
这是我的解决方法。从源代码中复制示例并将其放在此处。 希望不久的将来它有友好的解决方案。
sock.send(bytes([2,0,0,0,255,0]))
答案 1 :(得分:0)
如果您要使用序列化程序中的其他传入字段来计算一个隐藏字段, 比您需要使用serializer_field.context ['request']。data
此“数据”将在“ set_context()”之前进行验证,因此您可以安全地使用它。
我希望它会帮助别人。
class DefineNoteType:
def set_context(self, serializer_field):
# setting field "type", calculated by other serializer fields
data = serializer_field.context['request'].data
subscriber = data.get('subscriber', None)
connection = data.get('connection', None)
if subscriber:
self.type = 'subscriber_type'
elif connection:
self.type = 'connection_type'
else:
raise serializers.ValidationError('Custom error.')
def __call__(self):
return self.type
class NoteSerializer(serializers.ModelSerializer):
type = serializers.HiddenField(default=DefineNoteType())