Event
とSeries
という2つのモデルがあります。各イベントはSeriesに属しています。ほとんどの場合、イベントのstart_time
はシリーズ 'default_time
と同じです。Django管理者の親モデルに基づいてインラインを事前投入
ここでは、モデルを削除しています。
#models.py
class Series(models.Model):
name = models.CharField(max_length=50)
default_time = models.TimeField()
class Event(models.Model):
name = models.CharField(max_length=50)
date = models.DateField()
start_time = models.TimeField()
series = models.ForeignKey(Series)
私は管理アプリケーションでインラインを使用しているので、シリーズのすべてのイベントを一度に編集できます。
シリーズが既に作成されている場合は、シリーズ 'default_time
でインラインイベントごとにstart_time
を事前入力します。これまでのところ、Eventのモデル管理フォームを作成し、initial
オプションを使用して、固定時間で時間フィールドを事前入力しました。
#admin.py
...
import datetime
class OEventInlineAdminForm(forms.ModelForm):
start_time = forms.TimeField(initial=datetime.time(18,30,00))
class Meta:
model = OEvent
class EventInline(admin.TabularInline):
form = EventInlineAdminForm
model = Event
class SeriesAdmin(admin.ModelAdmin):
inlines = [EventInline,]
ここから進める方法はわかりません。 start_time
フィールドの初期値がSeries 'default_time
であるように、コードを拡張することは可能ですか?
これを参照してください:http://stackoverflow.com/questions/442040/pre-populate-an-inline-formset –