Django模型的__unicode__方法错误

0 投票
2 回答
679 浏览
提问于 2025-04-17 23:11

我在一个Django项目里有以下的Python代码:

import datetime
from django.utils import timezone
from django.db import models

# Create your models here.

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

    def __unicode__(self): 
        return self.question

    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)


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

当我运行命令 python manage.py validate 时,出现了以下错误:

 def __unicode__(self)
                    ^
SyntaxError: invalid syntax

有没有什么建议?

2 个回答

3

你忘记了缩进和冒号。应该是:

import datetime
from django.utils import timezone
from django.db import models

# Create your models here.

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

    def __unicode__(self): 
        return self.question

    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)


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

你忘记了 : 这个符号。

def __unicode__(self)

改成

def __unicode__(self):

另外,注意缩进哦。

def __unicode__(self): 
    return u'{0}'.format(self.choice_text)
    #^ Indentation

撰写回答