将计算的默认值添加到Django模型中,如何?

时间:2013-03-24 13:25:29

标签: python django

我正在尝试通过实施在线论坛来学习Python和Django。现在,我正在尝试将帖子标题的默认值设置为“Re:”+ thread.title,但我似乎无法做到。

我搜索过这样的事情,但似乎没有回答我的问题。

这是我的代码(models.py):

from django.db import models

class Thread(models.Model):
    title = models.CharField(max_length=50)

    def __unicode__(self):
        return u'[id=%s]%s' % (self.id, self.title)

class Post(models.Model):
    thread = models.ForeignKey(Thread)
    title = models.CharField(max_length=50)
    post_date = models.DateTimeField(auto_now_add=True)
    content = models.TextField()

    def __init__(self):
        super(Post, self).__init__()
        if not self.title:
            self.title = "Re: %s" % self.thread.title

    def __unicode__(self):
        return u'%s::[id=%s]%s' % (self.thread, self.id, self.title)

我希望有人可以帮助我。

此致 乍得

1 个答案:

答案 0 :(得分:1)

您可能希望在重写的save方法中设置默认值。您的__init__代码无效,因为此时尚未设置self.thread