В основном я ищу автоматическое заполнение двух полей created_by
и last_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 без указания полей вручную. Я предполагаю, что мне нужно переопределить одну из функций ModelViewSet
или CreateAPIView
Итак, какую функцию я переопределяю на слое View
, чтобы установить user_id для двух полей и передать егок сериализатору? И это правильный способ сделать это?