# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime
from django.db import models
from django.utils import timezone
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice
我正在使用django(1.11)文档制作民意调查应用程序现在我正在编辑(民意调查/模型),因为根据文档显示我错误。
我的民意调查/模特对我来说是错误的。帮助!!
Question.objects.all()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Python36\lib\site-packages\django\db\models\query.py", line 229, in __repr__
return '<%s %r>' % (self.__class__.__name__, data)
File "C:\Python36\lib\site-packages\django\db\models\base.py", line 589, in __repr__
u = six.text_type(self)
File "C:\Users\hp\mysite\polls\models.py", line 16, in __str__
return self.question
AttributeError: 'Question' object has no attribute 'question'
答案 0 :(得分:0)
__str__
Question
模型中有一个拼写错误:
def __str__(self):
return self.question_text
# ^^^^^^
答案 1 :(得分:0)
__str__
,他的建议将解决问题,但我会重新考虑Question
中字段的名称。
正确的字段名称应仅为text
而不是question_text
,因为该字段已位于Question
的域中。
想象一下这段代码
for question in Question.objects.all():
print(question.question_text)
正如您所看到的,question
作为text
的前缀完全没必要。