Почему привязывается только 1 значение?
Смысл программы в том, чтобы выбрать аналоги из списка и связать их. Я всегда связываю только 1 значение (с самим собой). Как это исправить
Мой view
:
def editpart(request, id, **kwargs):
if request.method == 'POST':
part.name = request.POST.get("name")
part.description = request.POST.get("description")
analogs = Part.objects.all()
for analogs_zap in analogs:
zap = analogs_zap.analog
part.analog.add(part.id)
Мой model
:
class Part(models.Model):
name = models.CharField('Название', max_length=100)
analog = models.ManyToManyField('self', blank=True, related_name='AnalogParts')
Многие ко многим полям создадут только уникальную привязку к базе данных
eg:
member = Member.objects.get(pk=1)
team = Team.objects.get(pk=1)
team.members.add(member)
team.members
[<Member: Member Name>]
team.members.add(member)
team.members
[<Member: Member Name>]
Не имеют смысла две записи одного и того же участника в команде.
Чтобы решить вашу проблему, замените models.ManytoManyField на models.ForeignKey.