簡體   English   中英

分配前在/本地變量'user'處引用了UnboundLocalError

[英]UnboundLocalError at / local variable 'user' referenced before assignment

我正在使用django-favorite, https: //bitbucket.org/last_partizan/django-favorites並嘗試顯示“僅獲取用戶的博客文章收藏夾”策略以獲取我的收藏夾。 在文檔中,它說

content_type = get_object_or_404(ContentType, app_label='myblogapp', model='blogpost')
favs = Favorite.objects.favorites_for_user(user).filter(content_type=content_type)

會做的工作。 所以在我的views.py中,我添加了

def index(request):
        user = MyProfile.objects.get(username=user)

        categories = Category.objects.all()
        try:
                sort = request.GET["sort"].strip()
                sort_method = SortMethods[sort]
                page = request.GET["page"].strip()
        except KeyError:
                sort_method = SortMethods.score
                page = 1

        if sort_method == SortMethods.date:
                post_list = Post.objects.order_by("-pub_date")
        else:
                post_list = Post.objects.all()
                post_list = sorted(post_list, key=lambda x: x.get_score(), reverse=True)

        paginator = Paginator(post_list, 30)

        try:
                posts = paginator.page(page)
        except PageNotAnInteger:
                posts = paginator.page(1)
        except EmptyPage:
                posts = paginator.page(paginator.num_pages)

        content_type = get_object_or_404(ContentType, app_label='main', model='post')
        favs = Favorite.objects.favorites_for_user(user).filter(content_type=content_type)
        context = {
                "posts": posts,
                "pages": paginator.page_range,
                "sort": sort_method.name,
                "categories":categories,
                "favs":favs,

        }
        return render(request, "main/index.html", context)

並在我的index.html中使用該收藏夾,我只是簡單地輸入了{{fav}},我什至不知道這是調用收藏夾的正確方法。 但我嘗試過,現在它在/下給了我UnboundLocalError

來自`user = MyProfile.objects.get(username = user)的賦值之前引用的局部變量'user'

`我有userena應用程序,在userena模型中

  class MyProfile(UserenaBaseProfile):
    user = models.OneToOneField(User,
                                unique=True,
                                verbose_name=_('user'),
                                related_name='my_profile')
    intro = models.CharField(_('intro'),
                                       max_length=5, default="Hello")

我從這里打電話來吸引用戶...我希望這是正確的。

第一行應該使用:

request.user

像這樣:

user = MyProfile.objects.get(username=request.user)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM