0

オンラインフォーラムを実装して、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)

誰かが私を助けてくれることを願っています。

よろしく、チャド

4

1 に答える 1

1

オーバーライドされたsaveメソッドでデフォルト値を設定することをお勧めします。__init__その時点self.threadではまだ設定されていないため、コードは機能しません。

于 2013-03-24T13:51:27.817 に答える