首页 > 解决方案 > Django Rest Framework 需要非空查找字段

问题描述

我有两个模型:

class Album(models.Model):
    code = models.CharField(max_length=10, primary_key=True, default=_create_access_code, verbose_name=_("Id"))
    name = models.CharField(max_length=200, verbose_name=_("Name"))
    description = models.TextField(null=True, blank=True, verbose_name=_("Description"))
    company = models.ForeignKey(Company, on_delete=models.PROTECT, related_name='albums', verbose_name=_("Company"))
    access_code = models.CharField(max_length=10, default=_create_access_code, verbose_name=_("Internal Use"))

    class Meta:
        verbose_name = _("Album")
        verbose_name_plural = _("Albums")

    def __str__(self):
        return "[{}] {} ({})".format(self.pk, self.name, self.company.id)


class Photo(models.Model):
    name = models.CharField(max_length=100, null=True, blank=True, verbose_name=_("Name"))
    album = models.ForeignKey(Album, on_delete=models.CASCADE, related_name='photos', verbose_name=_("Album"))
    photo = models.ImageField(verbose_name=_("Photo"))

    class Meta:
        verbose_name = _("Photo")
        verbose_name_plural =_("Photos")

    def __str__(self):
        return "[{}] {}".format(self.pk, self.name)

我正在尝试为 model向ModelViewSetAlbums发布帖子,但我收到一条错误消息,表明该字段photos是必需的。甚至该OPTIONS方法也表明它是必需的。

我如何指示DRF不按要求考虑查找字段?它是一些序列化程序设置吗?

标签: pythondjangodjango-rest-framework

解决方案


您可以将 required=False 添加到序列化程序中的字段。

photos = PhotoSerializer(many=True, required=False)

像这样的东西。你可以发布你的序列化程序吗?


推荐阅读