Relleno previo de inlines basado en el modelo padre en el administrador de Django
Tengo dos modelos,Event
ySeries
, donde cada Evento pertenece a una Serie. La mayoría de las veces, un evento destart_time
es lo mismo que su serie 'default_time
.
Aquí hay una versión simplificada de los 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)
Uso inlines en la aplicación de administración, de modo que puedo editar todos los Eventos para una Serie a la vez.
Si ya se ha creado una serie, quiero rellenar previamente lastart_time
para cada evento en línea con la serie 'default_time
. Hasta ahora, he creado un formulario de administrador modelo para Evento, y he usado elinitial
Opción para rellenar previamente el campo de tiempo con un tiempo fijo.
#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,]
No estoy seguro de cómo proceder desde aquí. ¿Es posible extender el código, de modo que el valor inicial para elstart_time
campo es la serie 'default_time
?