我有以下模型,序列化程序和视图。我的目标是传递一个自定义字符串
referrer = "pid=email&af_sub1=ui_1120&c=xyz"
在POST方法(下面的RegisterViewSet)中,然后到viewset/serializer中使用此信息来填写referral_活动、referral_media和inviting_user
所以: 1推荐人是只写字段 2referer不是模型中的字段,但该信息将用于填充模型中的字段
如何以DRF的方式实现这一点?在
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('first_name', 'last_name',)
write_only_fields = ('first_name', 'last_name', 'referrer') #how to use this 'referrer' field to populate the Model fields?
read_only_fields = ('id',)
class RegisterViewSet(generics.CreateAPIView):
model = User
serializer_class = UserSerializer
permission_classes = [
permissions.AllowAny
]
首先,需要在序列化程序中定义此字段:
(我不太确定您是否需要“只写”字段中的“名字”、“姓氏”,因为这意味着您只能得到ID作为响应,但这取决于您的要求)
现在,您需要重写序列化程序restore\u对象方法:
^{pr2}$(此答案假设DRF 2)
对于DRF3
从这个answer
对于新来的人。drf3中不推荐使用“只写”字段。在
“额外”是一种新的方法。参见:http://www.django-rest-framework.org/topics/3.0-announcement/#the-extra_kwargs-option
示例:
相关问题 更多 >
编程相关推荐