Django Rest Framework запрашивает как не нулевое поле поиска - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть две модели:

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)

Я пытаюсь отправить сообщение в ModelViewSet для модели Albums, но получаю сообщение об ошибке, указывающее, что поле photosнеобходимо.Даже метод OPTIONS указывает на то, что он необходим.

Как я могу указать DRF , что он не рассматривает поля поиска как необходимые?Это какая-то настройка сериализатора?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Источником ошибки проверки является models.py.Таким образом, было бы лучше установить null=True в вашей Photo модели как,

class Photo(models.Model):
    # your code
    photo = models.ImageField(verbose_name=_("Photo"),<b>null=True</b>)
    # your code
и выполнить миграцию БД
0 голосов
/ 22 декабря 2018

Вы можете добавить обязательный = False к полям в сериализаторе.

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

Как то так.Вы можете разместить свои сериализаторы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...