Get() вернул более одного Designated - он вернул 4

Я студент, который изучает Django. Пытался вставить designated_code в Views.py, но возникает следующая ошибка: Я вообще не знаю, как ее решить. Как можно решить эту проблему? Часть element.designed_code в join_create кажется проблемой.

Я буду очень рад, если вы поможете мне решить проблему. Я знаю, что в обозначенном коде есть 4 товара, но я хочу добавить обозначенный код, который соответствует значению выбранного кода стоимости.

Ошибка:

get() returned more than one Designated -- it returned 4!

Models.py

class Value(models.Model):
    value_code = models.AutoField(primary_key=True)
    option_code = models.ForeignKey(Option, on_delete=models.CASCADE, db_column='option_code')
    product_code = models.ForeignKey(Product, on_delete=models.CASCADE, db_column='product_code')
    name = models.CharField(max_length=32)
    extra_cost = models.IntegerField()

    def __str__(self):
        return self.name

    class Meta:
        ordering = ['value_code']


class Designated(models.Model):
    designated_code = models.AutoField(primary_key=True)
    product_code = models.ForeignKey(Product, on_delete=models.CASCADE, db_column='product_code')
    price = models.IntegerField()
    rep_price = models.BooleanField(default=True)

    class Meta:
        ordering = ['designated_code']

    def __str__(self):
        return str(self.designated_code)


class Element(models.Model):
    element_code = models.AutoField(primary_key=True)
    designated_code = models.ForeignKey(Designated, on_delete=models.CASCADE, db_column='designated_code')
    value_code = models.ForeignKey(Value, on_delete=models.CASCADE, db_column='value_code', null=True, blank=True)

    class Meta:
        ordering = ['element_code']

    def __str__(self):
        return str(self.element_code)

class Join(models.Model):
    join_code = models.AutoField(primary_key=True)
    username = models.ForeignKey(Member, on_delete=models.CASCADE, db_column='username')
    product_code = models.ForeignKey(Product, on_delete=models.CASCADE, db_column='product_code')
    part_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return str(self.join_code)

    class Meta:
        ordering = ['join_code']

Views.py

def join_create(request, id):
    current_category = None
    designated = Designated.objects.all()
    designated_object = Designated.objects.filter(rep_price='True')
    value_p = Value.extra_cost
    element = Element.objects.all()
    value_object = Value.objects.all()
    categories = Category.objects.all()
    products = Product.objects.all()

    if not request.user.is_authenticated:
        return HttpResponseRedirect(reverse('zeronine:login'))

    if request.method == "POST":
            product = Product.objects.get(product_code=id)
            join = Join()
            join.product_code = product
            join.username = request.user
            join.save()

            if request.method == "POST":
                form = ElementForm(request.POST)

                if form.is_valid():
                    for value_code2 in request.POST.getlist('value_code2'):
                        element = Element()
                        element.designated_code = Designated.objects.get(product_code=id)
                        element.value_code = get_object_or_404(Value, pk=value_code2)
                        element.save()

                else:
                    element = Element()
                    element.designated_code = Designated.objects.get(product_code=id)
                    element.value_code = None
                    element.save()

Forms.py

class ElementForm(forms.Form):
    value_code2 = forms.ModelChoiceField(error_messages={'required': "옵션을 선택하세요."}, label="옵션", queryset=Value.objects.all())
Вернуться на верх