python - Django InlineModelAdmin: Show partially an inline model and link to the complete model -
मैंने कई मॉडल परिभाषित किए हैं: पत्रिकाओं, मात्रा, volume_scanInfo आदि।
एक जर्नल में अधिक मात्रा हो सकती है और एक वॉल्यूम में अधिक स्कैन इन्फाइड हो सकता है।
मुझे क्या करना है:
- पत्रिकाओं के व्यवस्थापक पृष्ठ में मुझे वॉल्यूम इनलाइन की सूची बनाना है
- पिछली सूची के प्रत्येक संस्करण को उसके व्यवस्थापक पृष्ठ पर जोड़ने के लिए जहां मैं वॉल्यूम को संपादित करने के लिए फ़ॉर्म और "स्कैन जानकारी" इनलाइन की सूची को दिखा सकता हूं।
इसलिए मुझे ऐसा कुछ करना है:
जर्नल # 1 व्यवस्थापक पृष्ठ [नाम] [प्रकाशक] [यूआरएल] ..... वॉल्यूम इनलाइन की सूची [खंड 10] [.. (अन्य फ़ील्ड) ..] & lt; a href = "/ link / to / volume / 10" & gt; पूर्ण अभिलेख & lt; / a & gt; [मात्रा 20] [.. (अन्य फ़ील्ड) ..] & lt; a href = "/ link / to / volume / 20" & gt; पूर्ण रिकॉर्ड & lt; / a & gt;
तब
मात्रा # 20 व्यवस्थापक पृष्ठ [मात्रा संख्या] [.. (अन्य फ़ील्ड) ...] ...... की सूची स्कैन इन्फो इनलाइन [स्कैन इन्फो 33] [.. (अन्य फ़ील्ड) ..] & lt; a href = "/ link / to / scaninfo / 33" & gt; पूर्ण रिकॉर्ड & lt; / a & gt; [स्कैन सूचना 44] [.. (अन्य फ़ील्ड) ..] & lt; a href = "/ link / to / scaninfo / 44" & gt; पूर्ण रिकॉर्ड & lt; / a & gt;
मैंने जो करने की कोशिश की, वह एक मॉडल पद्धति को परिभाषित कर रही है जो उस कोड को बनाते हैं और इसे उस क्लास के अंदर प्रयोग करने का प्रयास कर रही है जो कि "वॉल्यूम इनलाइन" को व्यवस्थापक में परिभाषित करता है, लेकिन यह काम नहीं करता है।
दूसरे शब्दों में
मॉडल "वॉल्यूम" में कुछ ऐसा होता है:
def selflink (स्वयं): वापसी '& lt; a href = "/ व्यवस्थापक / पत्रिका / मात्रा / मात्रा /% s /" & gt; पूर्ण अभिलेख & lt; / a & gt; ' % Self.vid selflink.allow_tags = True
और
वर्ग वॉल्यूमइनलाइन (admin.TabularInline): फ़ील्ड = ['volumenumber', 'selflink'] मॉडल = वॉल्यूम अतिरिक्त = 1
लेकिन यह निम्न त्रुटि देता है:
अपवाद मान: 'VolumeInline.fields' फ़ील्ड 'selflink' को संदर्भित करता है फार्म से गायब है अद्यतन करें: Django 1.8 के बाद से, इसे बनाया गया है। देखें और।
पुराना उत्तर: अंत में मुझे एक साधारण समाधान मिला।
मैं linked.html
नामक एक नया टेम्प्लेट तैयार करता हूं जो कि tabular.html और मैंने इस कोड को लिंक बनाने के लिए जोड़ा है। {% if inline_admin_form.original.pk%} & lt; td class = "{{field.field.name}}" & gt; & Lt; a href = "/ admin / {{app_label}} / {{inline_admin_formset.opts.admin_model_path}} / {{इनलाइन_admin_form.original.pk}} /" & gt; पूर्ण रिकॉर्ड & lt; / a & gt; & Lt; / टीडी & gt; {% Endif%}
फिर मैंने एक नया मॉडल बनाया है लिंक्डइनलाइन
इनहेरिटिंग InlineModelAdmin
# टैबिल इनलाइन वर्ग लिंक्डइनलाइन (admin.options.InlineModelAdmin) में लिंक का समर्थन करने के लिए InlineModelAdmin का ओवरराइड: टेम्पलेट = "admin / linked.html" admin_model_path = कोई भी डीफ़ __इनट __ (स्वयं, * आर्ग्स): सुपर (लिंक्डइनलाइन, स्वयं)। __init __ (* आर्ग्स) अगर self.admin_model_path कोई नहीं है: self.admin_model_path = self.model .__ नाम __. कम ()
तब जब मैं एक नई इनलाइन को परिभाषित करता हूँ, तो मुझे केवल मेरे सामान्य InlineModelAdmin
के बजाय LinkedInline
।
मुझे आशा है कि यह अन्य लोगों के लिए उपयोगी हो सकता है।
Giovanni
Comments
Post a Comment