モデル フィールドの 1 つに呼び出し可能なデフォルト値があります。ModelForm を使用して出力しています。私が理解しているドキュメントから、callableは新しいオブジェクトが作成されたときにのみ呼び出されます。
私が理解していないのは、デフォルトの呼び出し可能オブジェクトで指定されたフィールドの非表示フィールドを取得する理由です.次の出力が得られます。
>>> form = SomeForm()
>>> print form['eventID']
<input id="id_eventID" maxlength="255" name="eventID" type="text" value="event_2c6b2259" /><input id="initial-id_eventID" name="initial-eventID" type="hidden" value="event_cee183d7" />
そして、上記のステートメントを印刷するたびに、eventIDの異なる値が得られます(デフォルト値はランダムな呼び出し可能オブジェクトです..)しかし、私が理解していることから、フォームのインスタンスがが作成されました。そうじゃない?
更新: forms.py
class EventForm(forms.ModelForm):
class Meta:
model = EiEventType
models.py
class Event(models.Model):
eventID = models.CharField(null=True,blank=True,default=random_eventID)
start = models.DateTimeField(null=True, default=two_min_from_now)
signal = models.ManyToManyField(Signal,null=True)
...
...
...
ランダム関数は次のように定義されます。
def random_eventID()
return "event_" + str(uuid.uuid4())[:5]
def two_min_from_now()
return datetime.datetime.now() + timedelta(minutes=2)