1

我对 Django 很陌生,我正在尝试在 django 模型中自动创建一个 slug 字段。因此,按照 django 101 教程,我尝试从以下 models.py 创建 slug 字段

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    slugp = models.SlugField(max_length=255, unique=True)

    def __unicode__(self):
         return self.question

    def save(self, *args, **kwargs):
        self.slugp = slugify(self.question)
        super(Poll, self).save(*args, **kwargs)

然后我使用 django API 如下:

from writedb.models import Poll, Choice 
from django.utils import timezone
p = Poll(question="What's new?", pub_date=timezone.now())
p.save
# out: <bound method Poll.save of <Poll: What's new?>>
p.slugp
#out: u''

无论我做什么,slugp 字段似乎都没有被填充(或者我访问它的方式是错误的?我似乎也没有在数据库中填充该字段) - 我想知道我做错了什么。任何指针将不胜感激 - 如果这是一个 101 问题,我很抱歉。

4

1 回答 1

4

您没有save正确调用该方法。p.save需要p.save()。前者只会返回save属性的内容,即方法本身,后者实际执行方法。

于 2013-03-13T22:53:49.923 回答