2017-01-29 7 views
7

मैंने अपनी व्यवस्थापक वेबसाइट से कुछ कार्यक्षमता को अग्रभाग में स्थानांतरित करने का निर्णय लिया है। कार्यक्षमता में कुछ विदेशी कुंजी इनलाइनों के साथ एक मॉडल का प्रशासन शामिल है।इनलाइनों के साथ फ्रंटएंड पर Django व्यवस्थापक कार्यक्षमता को सक्षम करें

इसके लिए मैंने django-dynamic-formet JQuery प्लगइन स्थापित किया है (लिंक git) और इसके साथ पहले से ही कुछ दिनों तक संघर्ष कर रहा है। यहां problems में से एक है।

समान कार्यक्षमता पहले ही Django व्यवस्थापक में लागू की गई है। मैं मॉडल उदाहरण को जोड़ना, संशोधित करना, संशोधित करना और संशोधित करना चाहता हूं। मुझे आश्चर्य है कि मुझे इस JQuery प्लगइन का उपयोग क्यों करना चाहिए और इंटरनेट पर इस विषय पर इतने सारे अच्छे ट्यूटोरियल क्यों नहीं हैं?

मुझे तीसरे पक्ष की जेएस फाइलों के बिना फ्रंटेंड साइड पर डीजेंगो फॉर्मेट्स या इनलाइन फॉर्मेट्स का उपयोग करने का एक अच्छा और हालिया उदाहरण चाहिए। मुझे खुशी होगी अगर इनलाइन आइटम्स को हटाने और बटन जोड़ने के लिए लिंक (चेकबॉक्स नहीं) हैं जो सही रूप से नई इनलाइन जोड़ देंगे।

class School(models.Model): 
    name = models.CharField(_('School name'), max_length=100) 

class SchoolPlace(models.Model): 

    school = models.ForeignKey(School, verbose_name=_('school place'), related_name='school_places', blank=True, null=True) 

    name = models.CharField(_('School place name'), max_length=200) 

    city = models.ForeignKey(City, blank=True, null=True, verbose_name=_('city'), 
        help_text='city') 

वहाँ भी इसी रहे हैं रूपों:

class SchoolForm(forms.ModelForm): 

     name = forms.CharField(
          label=_('Name'), 
          widget=forms.TextInput(attrs={ 
           'placeholder': _('school name')}), 
           max_length=100, required=True) 

class SchoolPlaceForm(forms.ModelForm): 

    name = forms.CharField(label=_('Name'), 
          widget=forms.TextInput(
             attrs={'placeholder': _('school place name')}), 
             max_length=200, 
             required=False) 

    city = forms.ModelChoiceField(label=_('City'), 
            widget=forms.Select(attrs={'class': 'ui search dropdown'}), 
            queryset=City.objects.all(), required=False) 

    class Meta: 
     model = SchoolPlace 
     fields = ['name','city'] 
     exclude = ['school'] 

मैं दो मॉडल स्कूल और SchoolPlace है: क्योंकि सवाल बहुत व्यापक माना जाता था

अधिक विशिष्ट होना करने के लिए मैं इन दो मॉडलों को उसी तरह संपादित करना चाहता हूं जैसे यह Django व्यवस्थापक में किया जाता है, लेकिन केवल अपने ही अग्रभाग पर। जहां तक ​​सभी जेएस फाइलें पहले से ही django.contrib.admin में हैं, मैं इसे साइड एप्लिकेशन और प्लगइन्स के उपयोग के बिना करना चाहूंगा।

मुझे Django व्यवस्थापक में समान कार्यक्षमता की आवश्यकता है: स्कूलप्लेस इनलाइन को जोड़ें, हटाएं, संशोधित करें। यहां स्क्रीनशॉट है: enter image description here

उत्तर

1

मैं सुझाव दूंगा कि आपने व्यवस्थापक रूपों (अपने विचारों में) या व्यवस्थापक दृश्य (कस्टम यूआरएल पर) का उपयोग किया है और केवल व्यवस्थापक टेम्पलेट्स को बदलना है, या यहां तक ​​कि केवल व्यवस्थापक जावास्क्रिप्ट को लोड करना, आप पा सकते हैं यह व्यवस्थापक टेम्पलेट्स में।

+0

क्या आप एक कामकाजी उदाहरण प्रदान कर सकते हैं? –

1

इस कार्य को दोनों फ्रंटेंड और बैकएंड पक्षों पर समर्थन की आवश्यकता है।

ऐसा लगता है कि यह आपके लिए स्वीकार्य है, तो डीजेंगो-एडमिन फॉर्म का उपयोग करना सबसे आसान तरीका है।

कोई भी django व्यवस्थापक फॉर्म URL पृष्ठ में ?_popup=1 पैरामीटर को व्यवस्थापक पृष्ठ सजावट को दबाने और केवल एक फ़ॉर्म की सेवा करने के लिए पहचानता है। सभी आवश्यक जावास्क्रिप्ट और सीएसएस शैलियों को शामिल किया जाएगा। इसलिए व्यवस्थापक फॉर्म iframe में अग्रभाग पर दिखाए जा सकते हैं। जावास्क्रिप्ट-स्तर पर चारों ओर एक छोटी हैकिंग अभी भी फॉर्म में iframe के आकार को समायोजित करने और पृष्ठ को सूचित करने के लिए आवश्यक है, तो फॉर्म बंद है।

+0

धन्यवाद! मुझे लगता है कि यह iframe के अंदर एम्बेड करने के लिए बहुत अधिक ओवरहेड होगा। मैं व्यवस्थापक जेएस फाइलों के उपयोग के बारे में सोच रहा हूं जो स्थिर रूप से मेरे स्वयं के टेम्पलेट और प्रस्तुत फॉर्म के साथ स्थित हैं। –

संबंधित मुद्दे