Django错误'unicode'对象没有属性'对象'

时间:2013-02-12 05:43:36

标签: django attributeerror

我正在编写我的第一个django应用程序 https://docs.djangoproject.com/en/dev/intro/tutorial01/ 我遇到了两个问题。

我的Models.py是

来自django.db导入模型

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def _unicode_(self):
        return self.question self.question                                                                                                                                                   
class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
     def _unicode_(self):
        return self.question 

我的第一个错误是我什么时候

 python manage.py shell
 from mysite.myapp.models import Poll,Choice
 p = Poll(question="What Your Name",pub_date"1990-02-04")
 p.save()
 Poll.objects.all()
 [<Poll: Poll object>, <Poll: Poll object>]

为什么不显示{Poll:怎么了?而不是

 [<Poll: Poll object>, <Poll: Poll object>]

我的第二个问题是当我输入

 p = Poll.objects.get(id=1)
 p.question.objects.all()

我得到这个错误

 AttributeError: 'unicode' object has no attribute 'objects'

我该如何解决?

2 个答案:

答案 0 :(得分:2)

  1. 您必须定义模型的__unicode__方法,而不是_unicode_。此外,您提供的代码return self.question self.question语法无效。

  2. p是一个轮询实例,p.question是CharField而不是ForeignKey,没有属性对象。 p有对象,调用p.objects.all()效果很好。

答案 1 :(得分:0)

1&GT;其__unicode__不是_unicode_

Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __unicode__(self):
        return self.question, self.pub_date

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __unicode__(self):
        return self.choice_text

2 - ; objects函数是文档实例的属性而不是字段,p.questions是文档字段,