1

私は Django を初めて使用し、django モデルでスラッグ フィールドを自動作成しようとしています。そこで、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 に答える