Django REST Framework:在序列化程序中设置必填字段但不在模型中

use*_*217 1 serialization django-rest-framework

我有一个这样的模型:

class Photo(models.Model):
   dt_creation = models.DateTimeField(auto_now_add=True)
   author = models.ForeignKey(Author, null=True, blank=True)
   filename = models.CharField(max_length=255, db_index=True)
   original_width = models.PositiveIntegerField()
   original_height = models.PositiveIntegerField()
Run Code Online (Sandbox Code Playgroud)

如何设置仅在序列化程序中需要的作者字段?

小智 6

您可以在 Meta 类中使用 extra_kwargs:

    class Meta:
          model = Photo
          fields = '__all__'
          extra_kwargs = {'author': {'read_only': True, 'required': False}}
Run Code Online (Sandbox Code Playgroud)