UserCheckout匹配查询不存在

安德里亚·切洛(Andrea Chello)

我正在尝试显示与每个登录用户匹配的所有订单,我不明白为什么在尝试筛选用户时会给我带来问题,因为它给我UserCheckout没有任何匹配的查询:

orders / views.py

class OrderList(LoginRequiredMixin, ListView):

    queryset = Order.objects.all()

    def get_queryset(self):
        
        user_check_id = self.request.user.id
        user_checkout = UserCheckout.objects.get(id=user_check_id)  
        return super(OrderList, self).get_queryset().filter(user=user_checkout)

orders / mixins.py

class LoginRequiredMixin(object):

    @method_decorator(login_required)
    def dispatch(self, request, *args, **kwargs):
        return super(LoginRequiredMixin, self).dispatch(request,*args, **kwargs)

orders / models.py

class UserCheckout(models.Model):
            user = models.OneToOneField(settings.AUTH_USER_MODEL, null=True, blank=True, on_delete = models.CASCADE) # not required as to allow guests to checkout too
            email = models.EmailField(unique=True) # required, unique as if there the guest already has an authentication just one email needed
        
        
            def __str__(self):
                return self.email
    
class Order(models.Model):
        status                  = models.CharField(max_length=120, choices=ORDER_STATUS_CHOICES, default='created')
        cart                    = models.ForeignKey(Cart, on_delete=models.CASCADE)
        user                    = models.ForeignKey(UserCheckout, null=True, on_delete=models.CASCADE)
        billing_address         = models.ForeignKey(UserAddress, related_name='billing_address', null=True,on_delete=models.CASCADE)
        shipping_address        = models.ForeignKey(UserAddress, related_name='shipping_address', null=True, on_delete=models.CASCADE)
        shipping_total_price    = models.DecimalField(max_digits=50, decimal_places=2, default=5.99)
        order_total             = models.DecimalField(max_digits=50, decimal_places=2)
    
        def __str__(self):
            return str(self.cart.id)

错误它给我:

   DoesNotExist at /orders/
UserCheckout matching query does not exist.
阿卜杜勒·阿齐兹·巴尔卡特|

由于尝试将User's主键(id)作主键(UserCheckout's即行),因此出现错误

user_check_id = self.request.user.id
user_checkout = UserCheckout.objects.get(id=user_check_id)

将这些行更改为:

user = self.request.user
user_checkout = UserCheckout.objects.get(user=user)

如果UserCheckout实例不存在,这也会引发异常,您可以使用try-except或使用django的快捷功能get_object_or_404捕获该异常

from django.shortcuts import get_object_or_404

user_checkout = get_object_or_404(UserCheckout, user=user)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django匹配查询不存在

来自分类Dev

Django-不存在匹配的查询

来自分类Dev

Django测试:不存在匹配的查询

来自分类Dev

UserVote匹配查询不存在

来自分类Dev

帖子匹配查询不存在

来自分类Dev

CartItem匹配查询不存在

来自分类Dev

Django测试匹配查询不存在

来自分类Dev

MyProfile匹配查询不存在

来自分类Dev

匹配查询不存在错误

来自分类Dev

'something here' 匹配查询不存在

来自分类Dev

为什么我得到的匹配查询不存在?

来自分类Dev

/ accounts / profile /余额匹配查询中的“ DossNotExist”不存在

来自分类Dev

Django单元测试“不存在匹配查询”

来自分类Dev

在Django 2.2上不存在ContentType匹配查询

来自分类Dev

创建Django URL时出错(不存在匹配查询)

来自分类Dev

错误:MyUser匹配查询不存在-Django

来自分类Dev

使用邮递员不存在匹配查询

来自分类Dev

匹配查询不存在 - Django 搜索错误

来自分类Dev

不存在SQL查询

来自分类Dev

SQL不存在查询

来自分类Dev

查询日期或不存在?

来自分类Dev

mysql存在或不存在选择查询

来自分类Dev

django 1.5.1错误DidNotExist:MyModel匹配查询不存在,但是存在

来自分类Dev

“...匹配查询不存在。” 错误,但对象显然确实存在

来自分类Dev

django接收器-DidNotExist:WidgetList匹配查询不存在

来自分类Dev

使用pk形式外键的django匹配查询不存在

来自分类Dev

/ accounts / register /上的DidsNotExist不存在网站匹配查询。(Django,Python)

来自分类Dev

获取对象时如何处理“不存在匹配查询”

来自分类Dev

django-post_save-订单匹配查询不存在错误