Django के लिए 5 उपयोगी बैटरी

लगातार विकसित होने पर, आपको कई प्रकार के कार्यों का सामना करना पड़ता है, जिन्हें अक्सर माथे में हल नहीं किया जा सकता है। लेकिन कई समस्याएं पहले से ही किसी के द्वारा हल की गई हैं - आपको बस इस समाधान को खोजने की आवश्यकता है।

इसलिए, दिन-ब-दिन, मैंने बैटरी का एक छोटा सा संग्रह एकत्र किया, जिसने मेरे जीवन को बहुत सुविधाजनक बनाया। मैं क्या साझा करने के लिए जल्दबाजी:

Django-Select2


जैसा कि नाम से ही स्पष्ट है, बैटरी आपको अपने Django प्रोजेक्ट्स में लोकप्रिय select2 लाइब्रेरी का उपयोग करने की अनुमति देती है।
आवेदन में सभी अवसरों के लिए प्रपत्र फ़ील्ड और विजेट्स का एक सेट शामिल है।

यह दो प्रकार के विजेट प्रस्तुत करता है:

GitHub
प्रलेखन

Django-bitfield


आपको बिटमैप के रूप में मॉडल फ़ील्ड में मानों की सूचियों को संग्रहीत करने की अनुमति देता है, जिसकी लंबाई का उपयोग डेटाबेस में बिगआईंट की अधिकतम लंबाई तक सीमित है।

उपयोग उदाहरण (प्रलेखन से लिया गया):

from bitfield import BitField class MyModel(models.Model): flags = BitField(flags=( 'awesome_flag', 'flaggy_foo', 'baz_bar', )) 

लेकिन

बैटरी में एक महत्वपूर्ण खामी है, मेरी राय में - नियमित साधनों का उपयोग करते हुए, झंडे को या तो व्यवस्थापक पैनल में या अपने स्वयं के टेम्पलेट्स में एक समझदार रूप में प्रदर्शित नहीं किया जा सकता है। खुद के लिए, मैंने इस समस्या को इस प्रकार हल किया:

models.py:

 from django.db import models from django.utils.translation import ugettext_lazy as _ from bitfield import BitField class MyModel(models.Model): FLAGS = ( ('flag1', _('flag 1 description')), ('flag2', _('flag 2 description')), ('flag3', _('flag 3 description')), ) flags = BitField([k for k, v in FLAGS]) 


forms.py

 from django import forms from .models import MyModel class MyModelForm(forms.ModelForm): def _set_choices(self, field, choices): self.fields[field].widget.choices = choices def __init__(self, *args, **kwargs): super(MyModelForm, self).__init__(*args, **kwargs) self._set_choices('flags', MyModel.FLAGS) 


admin.py

 from django.contrib import admin from .forms import MyModelForm from .models import MyModel class MyModelAdmin(admin.ModelAdmin): form = MyModelForm admin.site.register(MyModel, MyModelAdmin) 

GitHub

Django-टैगिंग


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

कुछ फिक्स के साथ GitHub पर मेरा कांटा

लेकिन मॉड्यूल स्वयं ऑटो-पूर्णता का समर्थन नहीं करता है - और यह, आप देखते हैं, एक बहुत ही उपयोगी विशेषता है। कई कार्यान्वयन हैं: एक , दो , तीन - ये Google से केवल पहली लिंक हैं।
लेकिन उनमें से कोई भी ऊपर वर्णित django- टैगिंग संस्करण से नामस्थान का समर्थन नहीं करता है, इसलिए मैंने इस कमी को दूर करने की स्वतंत्रता ली। और इसलिए मेरा कांटा सामने आया ...

Django-टैगिंग-autosuggest


मैं किसी भी तरह से दस्तावेज़ को फिर से नहीं लिख सकता, इसलिए मैं केवल उपयोग का एक उदाहरण दूंगा:

आवेदन को INSTALLED_APPS और परियोजना के urls.py में जोड़ा जाना चाहिए:
 from django.conf.urls import patterns, include, url urlpatterns = patterns('', url(r'^tagging/', include('tagging_autosuggest.urls')), ) 


और मॉडल में आवश्यक फ़ील्ड जोड़ें:
 from django.db import models from tagging_autosuggest.fields import TagAutosuggestField class MyModel(models.Model): tags1 = TagAutosuggestField(namespace='ns1', max_length=300) tags2 = TagAutosuggestField(namespace='ns2', max_length=300) 


परिणाम:

GitHub

Django-स्वत: पूर्ण प्रकाश


एक और बैटरी जो सूचियों के साथ काम करना आसान बनाती है। चारफिल्ड, फॉरेनकेय, मानटाउन जैसे फील्ड्स के साथ-साथ जेनेरिक कनेक्शनों (फॉरेनकेय और एम 2 एम) के लिए एडमिन पैनल में ऑटो-फीलिंग के साथ सुविधाजनक विजेट्स बनाता है।

परीक्षण परियोजना में उपयोग के उदाहरण देखे जा सकते हैं।

और यह वही है जो GenericForeignKey एक वास्तविक परियोजना में दिखता है:

GitHub
प्रलेखन

ओपनसोर्स में मेरा विनम्र योगदान: github.com/Yuego?tab=repositories

त्रुटियों, टाइपो, आदि के बारे में संदेश पारंपरिक रूप से पीएम में स्वीकार किए जाते हैं।

Source: https://habr.com/ru/post/In187312/


All Articles