Djangoでは、モデルインスタンスの主キーに対して、モデルのフィールドのデフォルト値に使用する値の種類を決める方法はありますか? 例:私は私が何をしようとしているフィールドquestion_title
を持つQuestion
オブジェクトを持っている場合 はこのフィールドを設定することです:Python Djangoフレームワーク:モデルフィールドのデフォルト値を主キーで決定する
question_title = models.CharField(max_length=100, default="title")
代わりのちょうどdefault="title"
を言って、私が言いたいです:
default="title"+self.pk
問題は、クラスのメンバが実行時に定義されたときに、Pythonの通訳レベルから、どのような値を知る方法がないので、何のインスタンス化が、存在しないこと(少なくとも私は問題が何であるかと思います)されます自己の.pkが持っています。
そうならば、私はのinit()関数を実装しようとしたが、それでも型エラーを取得:
class Question(models.Model):
question_title = models.CharField(max_length=100, default="untitled")
question_text = models.CharField(max_length=200, default ="content")
def __init__(self):
self.question_title = models.CharField(max_length=100, default="title"+str(self.pk))
self.question_text = models.CharField(max_length=200, default ="content")
def __str__(self):
return self.question_title
エラーMSGがある:
__init__() takes exactly 1 argument (4 given)
ポストフルトレースバック –
なぜ、 '__init__'を上書きするのではなく、モデルマネージャを使用してください。 initを無効にすることはお勧めできません –
@ArpitSolankiこのことについて言及してくれてありがとうございます。https://docs.djangoproject.com/en/1.11/ref/models/instances/ – paradox