Джанго много-много полей по умолчанию - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь установить значение по умолчанию для многих полей.

это мои модели:

class Mess(models.Model):
    alias = models.UUIDField(
        primary_key=True,
        default=uuid4,
        editable=False
    )
    name = models.CharField(max_length=50, null=False, blank=False)
    address = models.CharField(max_length=300)
    admin = models.OneToOneField(
        Person,
        on_delete=models.CASCADE,
        related_name='mess_admin'
    )
    members = models.ManyToManyField(
        Person,
        default=admin,
        related_name='mess_members'
    )

Я пытаюсь сделать, когда не заполнено membersпоэтому для этого по умолчанию используется значение admin

, я устанавливаю default=admin, но это не работает, когда я пытаюсь создать mess без заполнения поля members из шаблонов администратора, но покаон возвращает мне ошибку: `Это поле обязательно для заполнения.

Может кто-нибудь помочь мне установить значение по умолчанию в manytomayfield?

1 Ответ

1 голос
/ 28 сентября 2019

default здесь обозначает значение по умолчанию во всей таблице, поэтому оно не соответствует вашим потребностям.Лучше либо использовать сигнал , либо триггер при использовании PostgreSQL, либо переопределить ваш save метод, чтобы обновить поле members после создания экземпляра.

Другим вариантом является проверка на получение: когда вы извлекаете свой экземпляр, убедитесь, что members не пусто, если да, верните admin вместо members.

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