मैंने हाल ही में 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)
मुझे क्या मिला कुछ अतिरिक्त के साथ आप सामान्य रूप से एक ManyToMany मैदान पर देखना होगा एक ही रूप था, पंक्तियों। एक संघटक मॉडलफॉर्म जैसे अतिरिक्त पैरामीटर के साथ इसे आपूर्ति करने में मदद नहीं मिली। संदेह है कि मूल मॉडलफॉर्म एसोसिएशन के साथ मॉडल = 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)
जाहिर है इस मैं उपयोग करना चाहते हैं एक हैक नहीं है। किसी को भी इनलाइन फॉर्म के माध्यम से इनलाइन फॉर्म के माध्यम से प्रदर्शित करने के लिए कई तरीकों से पता चलता है (ए) एक पूरी तरह से नया BasicInline फॉर्म और टेम्पलेट या (बी) इसे मध्यस्थ (या सामान्य व्यवस्थापक) मॉडल के माध्यम से डालने के बिना?
टीआईए। (मैं verbosity के लिए माफी माँगता हूँ, यह मेरी पहली पोस्ट है इसलिए पूरी तरह से होना चाहता था)।
हां, मैंने अंततः एक विदेशीकी के लिए बसने का फैसला किया, लेकिन मैं वास्तव में एक इनलाइन फॉर्म की तलाश में था जो कई लोगों के साथ काम करेगा क्योंकि django 1.2 दस्तावेज कहता है ... फिर भी, इन दोनों कामों में, धन्यवाद! – Katharine