Recientemente me actualicé a Django 1.2.1 porque estaba específicamente interesado en la capacidad de have basic many-to-many inline fields. Cuando se utiliza el administrador de este modo:Administrador en línea de Django 1.2.1 para muchos a muchos campos
modelos iniciales:
class Ingredient(models.Model):
name = models.TextField()
class Recipe(models.Model):
ingredients = models.ManyToManyField(Ingredient)
administrador inicial:
class IngredientInline(admin.TabularInline):
model = Recipe.ingredients.through
class RecipeOptions(admin.ModelAdmin):
inlines = [IngredientInline,]
exclude = ('ingredients',)
admin.site.register(Recipe,RecipeOptions)
Lo que obtuve fue la misma forma que normalmente ver en un campo ManyToMany, con un poco de sobrepeso filas Suministrarle parámetros adicionales como un Modelo de Modelo de Ingredientes no ayudó. Sospechando que algo podría estar mal con las asociaciones básicas de ModelForm a través del modelo = Foo.manyfields.through, decidí ver si un modelo de intermediario ayudaría. Ahora se muestra un formulario en línea de trabajo a través de:
nuevos modelos:
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)
Nueva administrador:
class IngredientInline(admin.TabularInline):
model = Recipe.ingredients.through
class RecipeOptions(admin.ModelAdmin):
inlines = [IngredientInline,]
admin.site.register(Recipe,RecipeOptions)
Obviamente, esto no es un truco que me gustaría utilizar. ¿Alguien sabe de una manera de obtener una relación manytomany para mostrar a través de formulario en línea sin (a) crear un formulario y plantilla BasicInline completamente nuevo o (b) ponerlo a través de un modelo de intermediario (o administrador genérico)?
TIA. (Me disculpo por la verbosidad, es mi primer mensaje, así que quería ser exhaustivo).
Sí, finalmente decidí conformarme con un ForeignKey, pero en realidad estaba buscando una forma en línea que funcionara con un campo ManyToMany como parece indicar la documentación de django 1.2 ... Aún así, ambos funcionan, ¡así que gracias! – Katharine