एक Django मॉडल एक विदेशी कुंजी फ़ील्ड है, और यदि उस क्षेत्र सूची मोड में दिखाया गया है, तो यह ऊपर पाठ के रूप में, बजाय विदेशी वस्तु के लिए एक लिंक प्रदर्शित करने में पता चलता है ।विदेशी कुंजी
क्या फ्लैट टेक्स्ट की बजाय सभी विदेशी कुंजी स्वचालित रूप से लिंक के रूप में प्रदर्शित करना संभव है?
(निश्चित रूप से यह है कि ऐसा करने के लिए क्षेत्र के आधार द्वारा एक मैदान पर संभव है, लेकिन वहाँ एक सामान्य विधि है?)
उदाहरण:
class Author(models.Model):
...
class Post(models.Model):
author = models.ForeignKey(Author)
अब मैं ऐसा है कि एक ModelAdmin चुनें लेखक सूची मोड में दिखाता है:
class PostAdmin(admin.ModelAdmin):
list_display = [..., 'author',...]
अब सूची मोड में, लेखक क्षेत्र सिर्फ __unicode__
विधि का उपयोग करेगा लेखक को प्रदर्शित करने के लिए Author
कक्षा का। इसके शीर्ष पर मैं लिंक व्यवस्थापक साइट में संबंधित लेखक के यूआरएल को इंगित करना चाहता हूं। क्या यह संभव है?
मैनुअल विधि:
पूर्णता के लिए के लिए, मैं मैनुअल विधि जोड़ें। यह PostAdmin
कक्षा में एक विधि author_link
जोड़ने के लिए होगा:
def author_link(self, item):
return '<a href="../some/path/%d">%s</a>' % (item.id, unicode(item))
author_link.allow_tags = True
है कि विशेष क्षेत्र के लिए काम करेंगे, लेकिन वह नहीं है कि मैं क्या चाहता हूँ। मैं एक ही प्रभाव प्राप्त करने के लिए एक सामान्य विधि चाहता हूं। (समस्याओं में से एक यह है कि django व्यवस्थापक साइट में किसी ऑब्जेक्ट को स्वचालित रूप से पथ का पता लगाने के लिए कैसे करें।)
इस उत्तर के लिए धन्यवाद! क्या आप इनलाइनों के उपयोग पर विस्तार कर सकते हैं? यह कैसे मदद करेगा? –
@ ओलिवियर: इनलाइनों के बारे में सही दिशा में आपको इंगित करने के लिए मेरा उत्तर संपादित किया। – cethegeek