Выбор одного значения несколько раз в поле "многие ко многим" в Django

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

#my_views_py

from django.db import models
from django.contrib.auth.models import User


class Customer(models.Model):
    user = models.OneToOneField(User,null=True,blank=True,on_delete=models.SET_NULL)
    name = models.CharField(max_length=100,null=True)
    email = models.CharField(max_length=100,null=True)

    def __str__(self):
        return self.name or str(self.id)


class Product(models.Model):
    title = models.CharField(max_length=200)
    price = models.FloatField()
    image = models.ImageField(upload_to='static/images')


    def __str__(self):
        return self.title

class Order(models.Model):
    customer = models.ForeignKey(Customer,on_delete=models.SET_NULL,blank=True,null=True)
    date = models.DateField(auto_now_add=True,blank=True)
    complete = models.BooleanField(default=False,null=True,blank=False)
    transaction_id = models.CharField(max_length=200,null=True,blank=True)

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

class OrderItem(models.Model):
    product = models.ManyToManyField(Product,blank=True)
    order = models.ForeignKey(Order,on_delete=models.SET_NULL,null=True,blank=True)
    date = models.DateField(auto_now_add=True)
    
    def __str__(self):
        return str(self.order)

Небольшие изменения в существующем коде.

#my_views_py

from django.db import models
from django.contrib.auth.models import User


class Customer(models.Model):
    user = models.OneToOneField(User,null=True,blank=True,on_delete=models.SET_NULL)
    name = models.CharField(max_length=100,null=True)
    email = models.CharField(max_length=100,null=True)

    def __str__(self):
        return self.name or str(self.id)


class Product(models.Model):
    title = models.CharField(max_length=200)
    price = models.FloatField()
    image = models.ImageField(upload_to='static/images')


    def __str__(self):
        return self.title

class OrderItem(models.Model):
    product = models.ForeignKey(Product,blank=True)
    qty = models.CharField(null=False,blank=False)
    total_price = models.IntegerField()
    date = models.DateField(auto_now_add=True)

    def __str__(self):
        return str(self.order)**strong text**

class Order(models.Model):
    customer = models.ForeignKey(Customer,on_delete=models.SET_NULL,blank=True,null=True)
    orders = models.ManyToManyField(OrderItem,blank=False)
    date = models.DateField(auto_now_add=True,blank=True)
    complete = models.BooleanField(default=False,null=True,blank=False)
    transaction_id = models.CharField(max_length=200,null=True,blank=True)

    def __str__(self):
        return str(self.id)
Вернуться на верх