Dato un modello denominato MainModel
e RelatedModel
, dove successivamente ha ForeignKey
campo per MainModel
:Come mostrare diverse inlines seconda del valore corrente di campo oggetto
class MainModel(models.Model):
name = models.CharField(max_length=50)
type = models.BooleanField()
class RelatedModel1(models.Model):
main = models.ForeingKey(MainModel):
name = models.CharField(max_length=50)
class RelatedModel2(models.Model):
main = models.ForeingKey(MainModel):
name = models.CharField(max_length=50)
e la corrispondente ModelAdmin classi:
class RelatedModel1InlineAdmin(admin.TabularInline):
model = RelatedModel1
class RelatedModel2InlineAdmin(admin.TabularInline):
model = RelatedModel2
class MainModel(admin.ModelAdmin):
inlines = [RelatedModel1, RelatedModel2]
E questo è il comportamento predefinito, si ottiene due inline, uno per ogni modello correlato. La domanda è: come nascondere completamente tutte le inline quando viene creata l'istanza MainModel
(s' add_view
la ModelAdmin
), e per mostrare le inline per RelatedModel1
quando il campo dell'istanza MainModel
type
è True
, e mostrare le inline per RelatedModel2
quando False
.
Stavo per creare un descriptor per l'attributo ModelAdmin.inline_instances
, ma mi sono reso conto che ho bisogno di accedere all'istanza dell'oggetto che si sta modificando, ma viene passato come parametri.
Qualsiasi aiuto?
Grazie!
avevo bisogno che qualche tempo fa .. non ha mai trovato la risposta, buona domanda! – juliomalegria