2011-11-18 14 views
7

के लिए Django व्यवस्थापक इनलाइन मेरे पास है ही करने के लिए एक बहुत-से-अनेक संबंध के साथ निम्नलिखित मॉडलपुनरावर्ती ManyToMany

class Ticket(models.Model): 

    STATUS = (
     (0, "Open"), 
     (1, "Closed"), 
    ) 
    status = models.SmallIntegerField(default=0,choices=STATUS) 
    title = models.CharField(max_length=100) 
    replies = models.ManyToManyField('self') 
    description = models.TextField() 

मैं निम्नलिखित कोड का उपयोग कर

इस मॉडल व्यवस्थापक में एक इनलाइन के रूप में प्रदर्शित करने के लिए कोशिश कर रहा हूँ,
class TicketReply(admin.TabularInline): 
    model = Ticket.replies.through 

लेकिन मैं इस त्रुटि प्राप्त हो रही

<class 'tsn.ticket.models.Ticket_replies'> has more than 1 ForeignKey to <class 'tsn.ticket.models.Ticket'> 

तो मैं इस गलत कर im, या इस n है ओटी समर्थित है?

+0

fk_name और related_name आप की जाँच करनी चाहिए सेटिंग्स हैं: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#working-with-a-model-with-two-or- अधिक विदेशी-कुंजी-टू-द-ए-पैरेंट-मॉडल – arie

+0

मैं संबंधित त्रुटि नाम जोड़ने के बाद भी वही त्रुटि प्राप्त करता रहता हूं, और fk_name जोड़ते समय यह कहता है कि 'टिकट Reply.fk_name' फ़ील्ड 'उत्तरों' को संदर्भित करता है जो गायब है मॉडल 'टिकट_रेक्ट्स' से, मुझे नहीं लगता कि यह समर्थित है क्योंकि स्रोत कोड को देखते हुए, इनलाइन डीजेंगो को सत्यापित करते समय एक विदेशीकी – Paulo

+0

की अपेक्षा करता है आपको टिकट_प्रेशंस मॉडल भी पोस्ट करना चाहिए –

उत्तर

8

देर से हो सकता है, लेकिन मैं इस सवाल का जवाब देने का प्रयास करता हूं। टिकट.रियुप्स.थ्रू कई से अधिक रिश्तों को प्रबंधित करने के लिए एक टेबल है, इसमें फ़ील्ड_टिकेट और टू_टिकेट (एफके मॉडल मॉडल) हैं और आप इस फ़ील्ड को टैबुलरइनलाइन के लिए fk_name विकल्प के रूप में सेट कर सकते हैं।

class TicketReply(admin.TabularInline): 
    model = Ticket.replies.through 
    fk_name = 'from_ticket' 
संबंधित मुद्दे