Ho recentemente aggiornato a Django 1.2.1 perché ero interessato in particolare alla capacità di have basic many-to-many inline fields. Quando si utilizza l'amministrazione in questo modo:Django 1.2.1 Admin in linea per molti campi Molti
modelli iniziali:
class Ingredient(models.Model):
name = models.TextField()
class Recipe(models.Model):
ingredients = models.ManyToManyField(Ingredient)
amministratore iniziale:
class IngredientInline(admin.TabularInline):
model = Recipe.ingredients.through
class RecipeOptions(admin.ModelAdmin):
inlines = [IngredientInline,]
exclude = ('ingredients',)
admin.site.register(Recipe,RecipeOptions)
Quello che ho ottenuto è stata la stessa forma che normalmente vedere su un campo ManyToMany, con qualche extra filari. Fornirlo con parametri extra come un ingrediente ModelForm non ha aiutato. Sospettando che qualcosa potrebbe essere sbagliato con le associazioni ModelForm di base tramite model = Foo.manyfields.through, ho deciso di vedere se un modello intermedio avrebbe aiutato. Ora mostra una forma in linea di lavoro attraverso:
Nuovi modelli:
class RecipeJoin(models.Model):
pass
class Recipe(models.Model):
ingredients = models.ManyToManyField(RecipeJoin,through='Ingredient')
class Ingredient(models.Model):
name = models.TextField()
test = models.ForeignKey(RecipeJoin,null=True,blank=True,editable=False)
nuovo admin:
class IngredientInline(admin.TabularInline):
model = Recipe.ingredients.through
class RecipeOptions(admin.ModelAdmin):
inlines = [IngredientInline,]
admin.site.register(Recipe,RecipeOptions)
Ovviamente questo non è un hack che vorrei utilizzare. Qualcuno sa di un modo per ottenere molte relazioni da visualizzare tramite il modulo in linea senza (a) creare un modulo e un modello BasicInline completamente nuovo o (b) metterlo attraverso un modello intermedio (o generico di amministrazione)?
TIA. (Mi scuso per la verbosità, è il mio primo post che voleva essere approfondito).
Sì, alla fine ho deciso di accontentarmi di un ForeignKey, ma in realtà stavo cercando un modulo in linea che avrebbe funzionato con un campo ManyToMany come sembra dire la documentazione di django 1.2 ... Comunque, entrambi funzionano, quindi grazie! – Katharine