根据请求将数据添加到Modelerializer字段

时间:2019-10-04 17:55:32

标签: django django-rest-framework

基本上,我要寻找的是基于固定值自动填充两个字段created_bylast_modified_by

class SupportingAttachment(models.Model):
    order = models.ForeignKey(Order,null = True,blank = True)
    file = models.FileField(upload_to= upload_supporting_attachment, null=True, blank=True)
    created_by = models.ForeignKey(User,blank = True,related_name = 'support_created_by')
    created = models.DateTimeField(auto_now_add=True)
    last_modified_by = models.ForeignKey(User,blank = True,related_name = 'support_modified_by')
    last_modified = models.DateTimeField(auto_now=True)

到目前为止,作为一个临时解决方案,我正在编写一个手动序列化程序,并通过覆盖validate函数并调用create来添加数据。

 def validate(self, attrs):
        userid = self.context['request'].user.id
        x = attrs.update({"created_by": userid, "last_modified_by": userid})
        return attrs

我想在ModelSerializer中执行此操作,而无需手动指定字段。我假设我必须重写ModelViewSetCreateAPIView

的功能之一

那我应该在View层上重写哪个函数来在两个字段上设置user_id并将其传递给序列化程序?这也是正确的做法吗?

0 个答案:

没有答案