Django models ManyToManyField всегда добавляет элемент в список

Я реализовал две модели, Card и Dish. Я использовал отношения "многие ко многим", потому что блюдо может быть во многих карточках. Не уверен, правильно ли я сделал, потому что любое блюдо, которое я добавляю, автоматически добавляется в каждую карточку. Вот код:


class Dish(models.Model):
    name = models.CharField(max_length=255, unique=True)
    description = models.TextField(max_length=1000)
    price = models.DecimalField(max_digits=5, decimal_places=2)
    preparation_time = models.IntegerField()
    date_added = models.DateField(auto_now_add=True)
    update_date = models.DateField(auto_now=True)
    vegan = models.BooleanField(default=False)

    def __str__(self):
        return self.name


class Card(models.Model):
    name = models.CharField(max_length=255, unique=True)
    description = models.TextField(max_length=1000)
    date_added = models.DateField(auto_now_add=True)
    update_date = models.DateField(auto_now=True)
    dishes = models.ManyToManyField(Dish, blank=True)

    def __str__(self):
        return self.name

Проблема в панели администратора выглядит следующим образом: enter image description here

Когда я создаю блюдо, оно всегда добавляется в каждую карточку.
Помогите пожалуйста, я только начинаю изучать sql и django ORM.

Наличие блюд в поле администратора не означает, что они действительно выбраны, это просто поле мультивыбора. Только те, которые выделены, действительно находятся в поле. и вы делаете +Click, чтобы переключить, выбраны они или нет

Полагаю, это лучший способ показать поле Many-to-Many, но он может быть запутанным в использовании... Вот почему я всегда просто редактирую их в оболочке, особенно когда там 100+, 200+ элементов.

Вернуться на верх