【问题标题】:Django tutorial 1 issueDjango 教程 1 期
【发布时间】:2015-03-10 22:02:05
【问题描述】:

我在这个问题上卡了 3 天,尝试了不同的方法来解决这个问题,但无济于事。这让我很头疼,我希望这里有人能帮助我。..

基本上,我正在为 Django 编写教程,在第 1 部分中,您打算从 polls 项目中的 models.py 文件中打印 Question 的输出。但是,尽管相应地修改了我的代码,但我没有得到所需的输出到教程。

这是 polls 项目中 models.py 文件的代码 导入日期时间 从 django.db 导入模型 从 django.utils 导入时区

 class Question(models.Model):
     question_text = models.CharField(max_length=200)
     pub_date = models.DateTimeField('date published')

 def __unicode__(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)
     choice_text = models.CharField(max_length=200)
     votes = models.IntegerField(default=0)

def __unicode__(self):
       return self.choice_text

从终端运行 python shell 时我应该收到的输出是

   [<Question: "what's up?">]

但是我收到了:

 [<Question: Question object>]

请帮忙!

【问题讨论】:

  • 你使用的是 Python3 还是 Python2?

标签: python django


【解决方案1】:

修复代码的缩进,方法不属于你的类。

class Question(models.Model):
     question_text = models.CharField(max_length=200)
     pub_date = models.DateTimeField('date published')

     def __unicode__(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)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

    def __unicode__(self):
           return self.choice_text

【讨论】:

  • 在实际文件中,方法位于页面的最左侧,与类对齐,因此这不是缩进问题...我只是在此处缩进以使其适合代码块
  • 所以尝试改为str而不是unicode,可能是你的python版本有问题
  • 我正在运行需要 unicode 的 2.7.6 .. str 是 3 及以上我相信.. 至少这就是教程所说的
  • @HassanAli 如果方法在左侧对齐,那是错误。正如 Yuri 所示,它们需要向右缩进一级。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
  • 2012-06-22
  • 2014-11-25
  • 2015-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多