【发布时间】:2020-08-27 01:45:53
【问题描述】:
我有这个模型CustomerPurchaseOrderDetail,Product,Customer,我只是希望如果CustomerPurchaseOrderDetail模型中存在相同的productID和相同的CustomerID,如果CustomerPurchaseOrderDetail中存在相同的productID和相同的CustomerID,数量将加1。
userID = request.POST.get("userID")
client = Customer(id=userID)
vegetables_id = request.POST.get("id")
quantity = request.POST.get("quantity")
v = Product(id=vegetables_id)
price = request.POST.get("price")
discount = request.POST.get("discount_price")
insert = CustomerPurchaseOrderDetail.objects.get_or_create(
profile=client,
product = v,
quantity=quantity,
unitprice=price,
discounted_amount = discount,
discounted_unitprice = discount,
)
insert.save()
这是我的模型
class CustomerPurchaseOrderDetail(models.Model):
profile = models.ForeignKey(Customer,
on_delete=models.SET_NULL, null=True, blank=True,
verbose_name="Client Account")
product = models.ForeignKey(Product,
on_delete=models.SET_NULL, null=True, blank=True,
verbose_name="Product")
quantity = models.FloatField(max_length=500, null=True, blank=True, default=1)
class Product(models.Model):
product = models.CharField(max_length=500)
class Customer(models.Model):
user = models.OneToOneField(User, related_name="profile", on_delete=models.CASCADE)
firstname = models.CharField(max_length=500, blank=True)
lastname = models.CharField(max_length=500, blank=True)
contactNumber = models.CharField(max_length=500, blank=True)
email = models.CharField(max_length=500, blank=True)
这是我的错误
这是我的完整回溯
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/batchaddtocart/
Django Version: 2.2.4
Python Version: 3.7.4
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'customAdmin',
'sweetify']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
115. response = self.process_exception_by_middleware(e, request)
File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\django\core\handlers\base.py" in _get_response
113. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\User\Desktop\LastProject\OnlinePalengke\customAdmin\views.py" in batchaddtocart
939. insert.save()
Exception Type: AttributeError at /batchaddtocart/
Exception Value: 'tuple' object has no attribute 'save'
【问题讨论】: