无法分配“ <simplelazyobject

时间:2019-02-26 11:41:37

标签: django

=”“
 class ProductDetailSlugview(ObjectViewedMixin, DetailView):
    queryset = Product.objects.all()
    template_name = "products/product_detail.html"
    def get_context_data(self, *args, **kwargs):
        context=super(ProductDetailSlugview, self).get_context_data(*args , **kwargs)
        cart_object, new_object = Cart.objects.new_or_get(self.request)
        context['cart']=cart_object
        return context


这是我的观点

  / p / product / list / blackberry中的

ValueError无法分配
  ”   在0x7f0488733860 >>“:” ObjectViewed.user“必须是” User“实例。
  请求方法:GET请求
  网址:http://127.0.0.1:8000/product/list/blackberry Django
  版本:2.1.3异常类型:ValueError异常值:无法
  分配 ”   位于0x7f0488733860的对象>>”:“ ObjectViewed.user”必须是“用户”
  实例。异常
  位置:/home/wiwigi/Desktop/django-virtual/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py
  在 set 中,第210行Python
  可执行文件:/ home / wiwigi / Desktop / django-virtual / bin / python3 Python
  版本:3.6.5 Python路径:['/ home / wiwigi / Desktop / ecommerce_sample',
  '/ home / wiwigi / Desktop / ecommerce_sample',
  '/home/wiwigi/Desktop/django-virtual/lib/python36.zip',
  '/home/wiwigi/Desktop/django-virtual/lib/python3.6',
  '/home/wiwigi/Desktop/django-virtual/lib/python3.6/lib-dynload',
  '/usr/lib/python3.6',
  '/home/wiwigi/Desktop/django-virtual/lib/python3.6/site-packages',
  '/home/wiwigi/pycharm-2018.1.2/helpers/pycharm_matplotlib_backend']
  服务器时间:2019年3月26日11:31:14 +0000

我的错误代码请帮助我

2 个答案:

答案 0 :(得分:1)

您正在将AnonymousUser对象分配给user实例的属性ObjectViewed。从命名上来说,我的猜测是这发生在ObjectViewedMixin中。

要获得更明确的答案,您必须发布完整的堆栈跟踪信息和相关代码。

答案 1 :(得分:0)

这是因为您没有登录即可访问此视图(因此显示为AnonymousUser),因此您需要按如下所示将LoginRequiredMixin添加到您的班级,以确保只有登录的用户才能访问此视图视图。

from django.contrib.auth.mixins import LoginRequiredMixin

class ProductDetailSlugview(LoginRequiredMixin, ObjectViewedMixin, DetailView):
    # rest of the code