2013-03-13 16 views
13

मेरे पास कुछ मॉडल हैं जिनमें बड़ी संख्या में इनलाइन हैं। चूंकि सभी ऑब्जेक्ट्स के लिए सभी की आवश्यकता नहीं है, इसलिए मैंने इनलाइन मॉडल को extra = 0 के साथ घोषित किया ताकि एक छोटा add + इनलाइन पर दिखाई दे।django 1.5 व्यवस्थापक इनलाइन अतिरिक्त

हालांकि, ऐसा लगता है कि यह अब django 1.5 में काम नहीं कर रहा है। यदि extra = 0 सेट है, तो इनलाइन अब संपादन योग्य नहीं है।

क्या 1.4 व्यवहार 1.5 में प्राप्त करने का कोई तरीका है?

उदाहरण कोड:

class ModelInline(admin.StackedInline): 
    model = MyModel 
    extra = 0 

class OtherModelAdmin(admin.ModelAdmin) 
    inlines = [ModelInline] 

admin.site.register(OtherModel, OtherModelAdmin) 

संपादित करें (कुछ स्क्रीन):

Django 1.4: django 1.4 extra=0

Django 1.5: enter image description here

(Hinzufügen == जोड़ें)

+0

उदाहरण कोड यहां देखने के लिए अच्छा होगा। –

+0

कश्मीर, कुछ उदाहरण कोड – Jannis

उत्तर

7

यह पहले से ही पहले से ही हुआ है।

The new javascript made this impossible because the "Add Another" button 
was controlled by max_num, and ignored a value of 0. 
The javascript ignored a value of 0 because max_num has a default value of 0, 
and all the code using it had taken to equating max_num = 0 with being "off". 
So you can't actually have a maximum of 0. It's not possible. 

गैब्रियल हर्ले द्वारा एक पैच बनाया गया है जो किसी और चीज को तोड़ने के बिना वांछित व्यवहार को पुनर्स्थापित करता है। यह 3 साल पहले है और मुझे नहीं पता कि यह अभी भी Django 1.5 के लिए काम कर रहा है या नहीं। बस कोशिश :)

https://code.djangoproject.com/attachment/ticket/13023/13023_inlines_patch.diff

यहाँ है कि एक ही बग के लिए टिकट है (3 साल पहले):

https://code.djangoproject.com/ticket/13023

+0

मैं क्योंकि total_form_count नहीं रह गया है केवल formsets.py में, models.py में परिभाषित किया गया है 1.6 में यह लागू नहीं कर पा रहे जोड़ा, और कोड अलग है, तो मैं क्या बदलने के लिए यकीन नहीं है । क्या कोई मदद कर सकता है? – smwilsonau

+0

@smwilsonau Django 1.6 में, यह कहा जाता है ' – catherine

+0

धन्यवाद initial_form_count', मैं बराबर लाइनों मिल गया और पैच लागू किया, लेकिन मेरी समस्या निकला कुछ अलग ... – smwilsonau

2

मैं क्योंकि मैं में स्थिर व्यवस्थापक सामग्री थी इसी अंक में भाग एक निर्देशिका जो django के संस्थापन के बाहर थी। Django 1.5 contic सामग्री django/contrib/admin/static/admin/js/STATIC_ROOT/admin/js से समस्या को हल करने के लिए समस्या को हल करना।

+1

वास्तव में क्या करने के लिए एक अच्छी बात नहीं है कि किया जाना है। जब आप कुछ बिंदु पर Django संस्करण को अपग्रेड, तो आप मुसीबत में पड़ जाएगा आप उन स्टैटिक फ़ाइलें के नए संस्करण नहीं देखेंगे कारण (सिर्फ इस तरह के एक मुद्दा था)। यदि आप सर्वर स्थैतिक सामग्री उचित तरीके (https://docs.djangoproject.com/en/dev/howto/static-files/) आप कोई समस्या नहीं होनी चाहिए – nivcaner

0

बेहतर समाधान इनलाइन के get_extra विधि को ओवरराइड करना होगा। यह Django 1.9 में काम करता है, हालांकि मैं पिछले संस्करणों के लिए नहीं कह सकता

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