Выбор одного значения несколько раз в поле "многие ко многим" в 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)