Вопрос по – Применить хотя бы одно значение в отношении многие ко многим, в Django?

10

У меня есть отношение многие ко многим в модели Джанго (1.4).

class UserProfile(models.Model):
    foos = models.ManyToManyField(Foo)

Я хочу обеспечить, чтобы у каждого пользователя (профиля) был хотя бы один Foo. Foos может иметь ноль или более пользователей (профилей).

Мне бы очень хотелось, чтобы это применялось на уровне модели и администратора, но достаточно было бы просто применить это на уровне администратора.

Если я правильно понимаю, «многие» в Джанго говорят ноль или более.

Я хочу отношение ManyToOneOrMore. Как я могу это сделать?

Спасибо,

Крис.

Ваш Ответ

2   ответа
5

Вы не можете применить это на уровне модели как подробности @Greg, но выcan применить его в форме, просто сделав обязательное поле. Это не помешает любому, имеющему доступ на уровне оболочки, вручную создать UserProfile без foo, но это заставит любого, кто использует метод создания на основе браузера, создает.

7

К сожалению, я не думаю, что это возможно на уровне модели, поскольку данные ManyToMany сохраняются отдельно от других полей модели. Вы должны иметь возможность применять его на уровне администратора, указав пользовательскую форму и написав в ней метод clean ().

Похожие вопросы