#python #python-3.x #django #django-views
#python #python-3.x #джанго #django-views #django
Вопрос:
Это часть моего cart.js файл
function updateUserOrder(productId, action){
console.log('User is logged in, sending data..')
var url = '/update_item/'
fetch(url, {
method: 'Post',
headers:{
'Content-Type':'application/json',
'X-CSRFToken':csrftoken,
},
body:JSON.stringify({'productId': productId, 'action':action})
})
.then((response)=>{
return response.json()
})
.then((data)=>{
console.log('data:', data)
})
}
Это функция в моем ‘views.py » файл.
def cart(request):
if request.user.is_authenticated:
customer = request.user.customer
order, created = Order.objects.get_or_create(customer=customer, complete=False)
items = order.orderitem_set.all()
else:
items = []
order = {'get_cart_total':0, 'get_cart_items':0}
context={'items': items, 'order':order}
return render(request, 'store/cart.html', context)
models.py
class Order(models.Model):
costumer = models.ForeignKey(Costumer, on_delete=models.SET_NULL, blank=True, null=True)
date_ordered = models.DateTimeField(auto_now_add=True)
complete = models.BooleanField(default=False, null=True, blank=False)
transaction_id = models.CharField(max_length=200, null=True)
def __str__(self):
return str(self.id)
@ property
def get_cart_total(self):
orderitems = self.orderitem_set.all()
total = sum([item.get_total for item in orderitems])
return total
@ property
def get_cart_items(self):
orderitems = self.orderitem_set.all()
total = sum([item.quantity for item in orderitems])
return total
Я получаю эту ошибку. Я был бы признателен, если бы кто-нибудь мог мне здесь помочь.
File "C:UsersPCAppDataLocalProgramsPythonPython38-32libsite-packagesdjangoutilsfunctional.py", line 225, in inner
return func(self._wrapped, *args)
AttributeError: 'User' object has no attribute 'customer'
[07/Sep/2020 09:15:43] "GET /cart/ HTTP/1.1" 500 70674
Я не думаю, что у меня даже есть объект «User». Я не знаю, откуда взялась эта ошибка.
Ответ №1:
Пожалуйста, используйте customer =request.user
вместо customer = request.user.customer
def cart(request):
if request.user.is_authenticated:
costumer = request.user
order, created = Order.objects.get_or_create(costumer=costumer, complete=False)
items = order.orderitem_set.all()
else:
items = []
order = {'get_cart_total':0, 'get_cart_items':0}
context={'items': items, 'order':order}
return render(request, 'store/cart.html', context)
Комментарии:
1. я получаю эту ошибку, FieldError в / cart / Не удается разрешить ключевое слово ‘customer’ в поле. Варианты: complete, costumer, costumer_id, date_ordered, id, orderitem, shippingaddress, transaction_id
2. Я обновил свой ответ. Поэтому попробуйте еще раз. После получения ошибки, пожалуйста, добавьте свою модель
Order
.