MiloNNe
@MiloNNe
Жаль не взял собой рундук. Сундук для рун - РУНДУК

Как сделать связь в редактировании товара?

У меня есть форма для редактирования товара в которой можно изменять название описание и т.д.
Так же мне надо сделать возможность редактирование связей в этой форме. Для этого у меня есть вот такое поле
62f0f615b55aa170532131.png
В котором можно выбрать товары с которыми необходимо сделать связь
При сохранении результата связанными оказываются все товары независимо от кого какие были выбраны
Пример:
62f0f8bfd7c94702504647.png

Вот код views.py (как я подозреваю в нем ошибка)
def editpart(request, id, **kwargs):

    added = ''
    error = ''
    PartAllView = Part.objects.order_by('-id')
    part = Part.objects.get(id=id)
    form = PartForm(request.POST, request.FILES)

    if request.method == 'POST':
        part.brand = request.POST.get("brand")
        part.name = request.POST.get("name")
        part.description = request.POST.get("description")

        analogs = Part.objects.all()
        for analog_zap in analogs:
            analog = analog_zap.analog
            if Part.objects.filter(analog__in=[analog_zap]).distinct():
                part.analog.add(analog_zap.id)
        part.save()
        added = 'Запчасть успешно отредактирована'

    form = PartForm()

    data = {
        'added': added,
        'error': error,
        'form': form,
        'PartAllView': PartAllView,
        'part': part,
    }

    context_object_name = "part"

    return render(request, 'kross/editpart.html', data)


Часть models.py:
class Part(models.Model):
    ...
    analog = models.ManyToManyField('self', blank=True, related_name='AnalogParts')
    ...
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы