2016-08-17 11 views
5

मैं सिर्फ अपनी "बग" शोध अलग करना है और यह पता चला Django 1.9 में एक नई सुविधा कि डिफ़ॉल्ट रूप से CharFields पट्टी रिक्त स्थान होने के लिए: https://docs.djangoproject.com/en/1.9/ref/forms/fields/#django.forms.CharField.stripDjango TextField/CharField रिक्त स्थान/रिक्त लाइनों

ही तेजी लागू करने के लिए पाठ फ़ील्ड के लिए। तो मुझे पता चला कि Django अचानक पहले से अलग व्यवहार क्यों करता है, लेकिन ऑटो जेनरेट किए गए व्यवस्थापक रूपों के लिए पिछले डिफ़ॉल्ट को पुनर्स्थापित करने का कोई आसान तरीका है?

आईडी अभी भी व्यवस्थापक से स्वत: जेनरेट किए गए फॉर्म का उपयोग करते हुए रिक्त स्थान को स्ट्रिप नहीं करना पसंद करता है। क्या यह अभी भी संभव है? CharFields के लिए

my_field = models.CharField(max_lenght=255, strip=False) 

उत्तर

2

सबसे अच्छा तरीका यह संभाल करने के लिए की तरह लगता है इस तरह एक कस्टम व्यवस्थापक प्रपत्र बनाने के लिए है:

class CustomForm(forms.ModelForm): 
    my_field = forms.CharField(strip=False, widget=forms.Textarea) 

    class Meta: 
     model = MyModel 
     exclude = [] 

यह सिर्फ my_field अपने गैर छीन संस्करण के साथ ओवरराइट साथ एक डिफ़ॉल्ट रूप पैदा करेगा।) इसे पाठ्यक्रम के संबंधित व्यवस्थापक में सेट किया जाना है। अगर कोई भी एक सरल संस्करण जानता है। कृपया मुझे बताओ!

-2

अगले कोशिश करो।


Django TextField इस स्ट्रिपिंग सुविधा का समर्थन नहीं करता है, इसलिए आपको इसे स्वयं करना है। आप स्ट्रिप विधि का उपयोग कर सकते हैं।

abc.strip() 
+1

अपने मॉडल क्षेत्रों के लिए समर्थित नहीं है, केवल फ़ील्ड फार्म –

6
strip=False 
मॉडल क्षेत्र में

:

+2

अनुसार डॉक्स करने के लिए पट्टी पैरामीटर फार्म के लिए ही मान्य है फ़ील्ड लेकिन मॉडल फ़ील्ड के लिए नहीं .. और मैंने निश्चित रूप से कोशिश की: टाइप एरर: __init __() को एक अप्रत्याशित कीवर्ड तर्क 'स्ट्रिप' –

+0

मिला और जैसा मैंने ऊपर कहा था, मैं स्ट्रिप सुविधा को हटाना चाहता हूं जो डीजेगो 1.9 के साथ डिफ़ॉल्ट शुरुआत है - मैं मूल रूप से ली केई, लेकिन मेरे वर्तमान प्रोजेक्ट के लिए मैं रिक्त स्थान नहीं लेना चाहता हूं –

1

उपयोग करने का प्रयास करें:

# fields.py 
from django.db.models import TextField 


class NonStrippingTextField(TextField): 
    """A TextField that does not strip whitespace at the beginning/end of 
    it's value. Might be important for markup/code.""" 

    def formfield(self, **kwargs): 
     kwargs['strip'] = False 
     return super(NonStrippingTextField, self).formfield(**kwargs) 

और अपने मॉडल में:

class MyModel(models.Model): 
    # ... 
    my_field = NonStrippingTextField() 
+0

एक अच्छा विचार है .. अगली बार जब मैं इस समस्या में भाग लेता हूं तो जांच करेगा :) –

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