首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django错误赋值前引用的局部变量'Person‘

Django错误赋值前引用的局部变量'Person‘
EN

Stack Overflow用户
提问于 2013-03-08 18:11:10
回答 1查看 3.5K关注 0票数 0

我正在尝试做一个应用程序,宠物的主人可以创建自己的个人资料,并上传他们的宠物的照片。

当用户创建帐户或登录时,他会被重定向到配置文件中。个人资料页面应该显示他的信息,例如名字,而不是我收到这个错误。

代码语言:javascript
复制
UnboundLocalError at /profile/
local variable 'Person' referenced before assignment
Request Method: GET 
Request URL: /profile/ 
Django Version: 1.4.3 
Exception Type: UnboundLocalError 
Exception Value: local variable 'Person' referenced before assignment 


Traceback Switch to copy-and-paste view

C:\o\mysite\pet\views.py in Profile 

60.  return render_to_response('profile.html', {'Person': Person}, context_instance=RequestContext(request)) 

问题是链接到我在views.py的个人资料功能

我的views.py部分

代码语言:javascript
复制
@login_required     
def Profile(request):
        if not request.user.is_authenticated():
            return HttpResponseRedirect('/login/')
        Person = request.user.get_profile
        return render_to_response('profile.html', {'Person': Person}, context_instance=RequestContext(request))

我的profile.html

代码语言:javascript
复制
{% if Person %}
<ul>
        <li>Name : {{Person.user}} </li>
</ul>
{% endif %}     

我的models.py

代码语言:javascript
复制
from django.db import models
from django.db.models.signals import post_save
from django.contrib.auth.models import User

class Person(models.Model):
    user = models.OneToOneField(User)
    name = models.CharField(max_length=100)
    image = models.FileField(upload_to="images/",blank=True,null=True)


    def __unicode__(self):
        return self.name

class Pet(models.Model):
    Person = models.ForeignKey(Person)
    description = models.CharField(max_length=100)
    image = models.FileField(upload_to="images/",blank=True,null=True)

    def __unicode__(self):
        return self.description
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-08 18:17:55

尝试将Person放在request.user.is_authenticated的顶部。你忘了把'()‘放在get_profile里

代码语言:javascript
复制
@login_required     
def Profile(request):
    Person = request.user.get_profile()
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/login/')
    return render_to_response('profile.html', {
        'Person': Person
     }, context_instance=RequestContext(request))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15291476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档