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
Проблема в панели администратора выглядит следующим образом:
Когда я создаю блюдо, оно всегда добавляется в каждую карточку.
Помогите пожалуйста, я только начинаю изучать sql и django ORM.
Наличие блюд в поле администратора не означает, что они действительно выбраны, это просто поле мультивыбора. Только те, которые выделены, действительно находятся в поле. и вы делаете +Click, чтобы переключить, выбраны они или нет
Полагаю, это лучший способ показать поле Many-to-Many, но он может быть запутанным в использовании... Вот почему я всегда просто редактирую их в оболочке, особенно когда там 100+, 200+ элементов.