我是Django的初学者,正在做这个教程:https://docs.djangoproject.com/en/2.0/intro/tutorial02/但是我被困在他们教你如何使用API的部分(向下滚动,直到你到达玩API < / strong> part):
>>> q = Question.objects.get(pk=1)
>>> q.was_published_recently()
False
这是完整的源代码(models.py):
from django.db import models
import datetime
from django.utils import timezone
# Create your models here.
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
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_text
起初我觉得也许这些功能之间的空间不够,所以我试图解决它,当这不起作用我复制并粘贴了确切的代码,有人可以请告诉我出了什么问题以及如何解决这个问题?提前谢谢!
Python版本:3.5
操作系统:Linux Mint Cinnamon
答案 0 :(得分:1)
我不太明白你遇到了什么麻烦。
q.was_published_recently()
应该真正归还true
吗?或者你是否面临某种错误?
尝试在return语句之前打印出pub_date
,以验证该日期实际是什么。
答案 1 :(得分:0)
我建议您尝试打印Question
实例的字段。
>>> q = Question.objects.get(pk=1)
>>> q.question_text
'here will be the text of your question instance'
>>> q.pub_date
'here will be the date and time of your question instance'
>>> q.was_published_recently()
False
通过这种方式,您可以查看Question
个实例设置的日期和时间,这可以清除您的方法was_published_recently
返回True
或False
的原因。