Niedawno zaktualizowałem do Django 1.2.1, ponieważ byłem szczególnie zainteresowany zdolnością do have basic many-to-many inline fields. Podczas korzystania z administratorem w taki sposób:Django 1.2.1 Inline Admin dla wielu do wielu dziedzin
modeli początkowa:
class Ingredient(models.Model):
name = models.TextField()
class Recipe(models.Model):
ingredients = models.ManyToManyField(Ingredient)
Administrator początkowa:
class IngredientInline(admin.TabularInline):
model = Recipe.ingredients.through
class RecipeOptions(admin.ModelAdmin):
inlines = [IngredientInline,]
exclude = ('ingredients',)
admin.site.register(Recipe,RecipeOptions)
Dostałem tę samą postać normalnie można zobaczyć na polu ManyToMany wraz z dodatkowymi wydziwianie. Dostarczenie jej dodatkowych parametrów, takich jak ModelForm Ingredient, nie pomogło. Podejrzewając, że coś może być nie tak z podstawowymi skojarzeniami ModelForm poprzez model = Foo.manyfields.through, zdecydowałem się sprawdzić, czy pośredni model pomógłby. Teraz wyświetla roboczy formularza inline poprzez:
nowe modele:
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)
Nowy admin:
class IngredientInline(admin.TabularInline):
model = Recipe.ingredients.through
class RecipeOptions(admin.ModelAdmin):
inlines = [IngredientInline,]
admin.site.register(Recipe,RecipeOptions)
Oczywiście nie jest to hack Chciałbym użyć. Ktoś wie, jak uzyskać wieloetniczną relację do wyświetlenia za pomocą formularza liniowego bez (a) utworzenia całkowicie nowego formularza i szablonu BasicInline lub (b) umieszczenia go za pośrednictwem modelu pośredniego (lub ogólnego administratora)?
TIA. (Przepraszam za gadatliwość, to mój pierwszy post, więc chciałem być dokładny).
Tak, ostatecznie zdecydowałem się zadowolić obcym kluczem, ale szukałem formularza wbudowanego, który działałby z polem ManyToMany, jak zdaje się mówić dokumentacja 1.2 Django ... Mimo to, obie te prace, więc dziękuję! – Katharine