2013-02-16 9 views
5

हाइपोटेटिकली: मेरे पास कार नामक एक मॉडल है, जो एक उपयोगकर्ता से संबंधित है। मेरी चिंता डिफ़ॉल्ट Django व्यवस्थापक के भीतर है। मैं एक उपयोगकर्ता को एक ड्रॉप डाउन के माध्यम से एक कार के लिए असाइन करता हूं (यह डिफ़ॉल्ट Django व्यवहार है, इसलिए मुझे बताया गया है)।उपयोगकर्ताओं के 1000s की Django व्यवस्थापक ड्रॉपडाउन

जब मैं 1000s प्रयोक्ताओं की + ड्रॉप डाउन में से चुनने के लिए है तो क्या होगा। क्या व्यवस्थापक इस से निपटता है, अगर ऐसा है तो कैसे?

उत्तर

6

व्यवस्थापक अभी भी डिफ़ॉल्ट रूप से एक का चयन करें बॉक्स प्रदर्शित करेगा लेकिन आप raw_id_fields विकल्प के माध्यम से के बजाय कच्चे आईडी विजेट का उपयोग करने का विकल्प है: https://docs.djangoproject.com/en/1.4/ref/contrib/admin/#django.contrib.admin.ModelAdmin.raw_id_fields

डिफ़ॉल्ट रूप से, Django के व्यवस्थापक एक का चयन करें बॉक्स इंटरफ़ेस का उपयोग करता() फ़ील्ड जो विदेशीकी हैं। कभी-कभी आप ओवरहेड ड्रॉप-डाउन में प्रदर्शित करने के लिए सभी संबंधित उदाहरणों का चयन करने के लिए नहीं चाहते हैं।

+0

तो यह एक देखने प्रदान करता है:

आप की तरह कुछ कर सकते हैं? व्यवस्थापक उपयोगकर्ताओं को आईडी नहीं पता होगा? – Prometheus

+0

हां इनपुट के बगल में एक खोज आइकन है जिसका उपयोग आईडी को खोजने के लिए किया जा सकता है। –

4

आप django-grappelli पर देख सकते हैं, जो एक ऐसा ऐप है जो व्यवस्थापक इंटरफ़ेस को बढ़ाता है। documentationraw_id_fields का उपयोग करके ForeignKey या ManyToMany संबंधों के लिए स्वत: पूर्ण वर्णन करता है।

+0

वाह, यह जानना अच्छा है। धन्यवाद। – Prometheus

+0

कोई समस्या नहीं, खुशी हुई इससे मदद मिली – msc

3

आप django-select2 प्लगइन https://github.com/applegrew/django-select2 का उपयोग कर सकते हैं।

from django_select2 import AutoModelSelect2Field 

class CategoryChoices(AutoModelSelect2Field): 
    queryset = models.Category.objects 
    search_fields = ['name__icontains', 'code__icontains'] 

class NewsAdminForm(forms.ModelForm): 
    category = CategoryChoices() 

    class Meta: 
     model = models.News 
     exclude =() 

# register in admin 
class NewsAdmin(admin.ModelAdmin): 
    form = NewsAdminForm 
admin.site.register(News, NewsAdmin) 
संबंधित मुद्दे