javascript - /add-to-cart/test-product1 处的 FieldError
问题描述
大家好,我需要帮助,在尝试我的 dd to cart 按钮时,我收到了这条消息。
/add-to-cart/test-product1/ 处的 FieldError 无法将关键字“ordered”解析到字段中。选项有:id、item、item_id、order、quantity
my views.py for the add to cart function.
def add_to_cart(request, slug):
item = get_object_or_404(Item, slug=slug)
order_item, created = OrderItem.objects.get_or_create(
item=item,
user=request.user,
ordered=False
)
order_qs = Order.objects.filter(user=request.user, ordered=False)
if order_qs.exists():
order = order_qs[0]
# check if the order item is in the order
if order.items.filter(item__slug=item.slug).exists():
order_item.quantity += 1
order_item.save()
else:
ordered_date = timezone.now()
order = Order.objects.create(user=request.user,
ordered_date=ordered_date)
order.items.add(order_item)
return redirect("store:product", slug=slug)
我的模型.py
class Order(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
item = models.ManyToManyField(OrderItem)
start_date = models.DateTimeField(auto_now_add=True)
ordered_date = models.DateTimeField()
ordered = models.BooleanField(default=False)
def __str__(self):
return self.user.username
解决方案
then include all naming's to your view.py.```
```my views```
```in the views.py in my cart function, I used the order,
created method whereby i queried my Order Class model from my model.py.
then I made sure that the object that is being called has also be
mentioned also in my model class. just like the customer object.
if the object been called hasn't been mentioned you are must
likely to get a field error.```
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 = []
context = {'items':items}
return render(request, 'shop/cart.html', context)
class Order(models.Model):
customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, 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)
class OrderItem(models.Model):
product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
order = models.ForeignKey(Order, on_delete=models.SET_NULL, null=True)
quantity = models.IntegerField(default=0, null=True, blank=True)
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.product.id)
推荐阅读
- python - Python中的模块名称可以以下划线结尾吗?
- android-layout - 复杂的 TextView 对齐和换行
- python - 使用来自 SQL 的数据将 Plotly 图渲染到 Django 应用程序
- excel - 将IF应用于excel VBA中的单元格范围
- javascript - 合并更新重复键的对象(不区分大小写)
- javascript - 在客户端 js 文件中使用 pug 变量
- html - 相对线高不向下级联到
- java - 如何使用java连接spark数据框中的所有列?
- c# - 在while循环和!Console.KeyAvailable C#中嵌套开关/案例
- html - 选中复选框后不应用复选框边框