我最近升級到了Django 1.2.1,因爲我對have basic many-to-many inline fields的能力有特別的興趣。當使用像這樣的管理:Django 1.2.1多行到多行的內聯管理
初始模型:
class Ingredient(models.Model):
name = models.TextField()
class Recipe(models.Model):
ingredients = models.ManyToManyField(Ingredient)
初始管理員:
class IngredientInline(admin.TabularInline):
model = Recipe.ingredients.through
class RecipeOptions(admin.ModelAdmin):
inlines = [IngredientInline,]
exclude = ('ingredients',)
admin.site.register(Recipe,RecipeOptions)
我得到了什麼是相同的形式,你會在多對多場通常會看到,有一些額外的行。使用諸如Ingredient ModelForm之類的額外參數提供它並沒有幫助。懷疑基本的ModelForm關聯可能會出現問題,通過model = Foo.manyfields.through,我決定看看中介模型是否有幫助。
新型號:現在通過顯示一個工作直列形式
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)
新的管理:
class IngredientInline(admin.TabularInline):
model = Recipe.ingredients.through
class RecipeOptions(admin.ModelAdmin):
inlines = [IngredientInline,]
admin.site.register(Recipe,RecipeOptions)
顯然,這不是一個黑客,我想用。任何人都知道如何通過內聯表單來顯示多種關係的方式,而不需要(a)創建全新的BasicInline表單和模板,或者(b)通過中介(或通用管理員)模型進行創建。
TIA。 (我爲詳細道歉,這是我的第一篇文章,所以想徹底)。
是的,我最終決定解決一個ForeignKey,但我實際上正在尋找一個內聯的表單,可以與一個ManyToMany字段一起工作,因爲django 1.2文檔似乎說...儘管如此,這兩個工作,謝謝! – Katharine 2010-07-06 02:29:14