Prepopulating inlines com base no modelo pai no Django Admin
Eu tenho dois modelos,Event
eSeries
, onde cada evento pertence a uma série. Na maioria das vezes, um evento éstart_time
é o mesmo que sua série 'default_time
.
Aqui está uma versão simplificada dos modelos.
#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)
Eu uso inlines no aplicativo admin, para que eu possa editar todos os eventos para uma série de uma só vez.
Se uma série já tiver sido criada, quero preencher previamente ostart_time
para cada evento inline com a série 'default_time
. Até agora, criei um formulário de administração de modelo para o evento e usei oinitial
opção para pré-preencher o campo de tempo com um tempo fixo.
#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,]
Não sei como proceder daqui. É possível estender o código, para que o valor inicial para ostart_time
campo é a sériedefault_time
?