Django रूपों में सीएसएस स्टाइल


150

मैं निम्नलिखित शैली करना चाहूंगा:

forms.py:

from django import forms

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100)
    email = forms.EmailField(required=False)
    message = forms.CharField(widget=forms.Textarea)

contact_form.html:

<form action="" method="post">
  <table>
    {{ form.as_table }}
  </table>
  <input type="submit" value="Submit">
</form>

उदाहरण के लिए, मैं कैसे एक सेट करूँ वर्ग या आईडी के लिए subject, email, messageके लिए किसी बाह्य शैली पत्रक प्रदान करने के लिए?

जवाबों:


192

मेरे उत्तर से लिया गया: Django में <div class = 'field_type'> के साथ फ़ील्ड कैसे चिह्नित करें

class MyForm(forms.Form):
    myfield = forms.CharField(widget=forms.TextInput(attrs={'class' : 'myfieldclass'}))

या

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['myfield'].widget.attrs.update({'class' : 'myfieldclass'})

या

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        widgets = {
            'myfield': forms.TextInput(attrs={'class': 'myfieldclass'}),
        }

--- एडिट ---
उपरोक्त मूल प्रश्न का कोड बनाने के लिए सबसे आसान परिवर्तन है जो कि जो पूछा गया था उसे पूरा करता है। यदि आप अन्य स्थानों पर फॉर्म का पुन: उपयोग करते हैं तो यह आपको खुद को दोहराने से भी रोकता है; यदि आप Django के as_table / as_ul / as_p फॉर्म विधियों का उपयोग करते हैं तो आपकी कक्षाएं या अन्य विशेषताएँ बस काम करती हैं। यदि आपको पूरी तरह से कस्टम रेंडरिंग के लिए पूर्ण नियंत्रण की आवश्यकता है, तो यह स्पष्ट रूप से प्रलेखित है

EDIT 2 ---
एक मॉडलफ़ॉर्म के लिए विजेट और अटार्स को निर्दिष्ट करने के लिए एक नया तरीका जोड़ा गया।


27
हालांकि यह व्यावसायिक तर्क के साथ प्रस्तुति को मिश्रण करने के लिए अनुशंसित नहीं है।
टॉरस्टेन एंजेलब्रैच

8
यह प्रस्तुति कैसी है? आप तत्व को एक वर्ग दे रहे हैं, जो सिर्फ एक पहचानकर्ता या वर्गीकरण है। आपको अभी भी परिभाषित करना है कि अन्यत्र क्या करता है
shadfc

9
हां और ना। पहले सीएसएस कक्षाएं स्टाइल के लिए उपयोग किए जाने वाले सम्मेलन द्वारा होती हैं, अगर आपको एक अद्वितीय पहचानकर्ता की आवश्यकता होती है तो इसका उपयोग करना बेहतर होता है id। दूसरा, आमतौर पर टेम्पलेट पक्ष की ज़िम्मेदारी यह करने के लिए है कि यदि आप फ्रंटेंड विधियों (जेएस, सीएसएस) के माध्यम से इस वर्ग तक पहुंच बनाने जा रहे हैं, तो संभवतः। मैंने नहीं कहा कि आपका उत्तर गलत है। मेरी राय में इसका बुरा अभ्यास (निस्संदेह जब आपका काम फ्रंटएंड और बैकएंड डेवलपर्स की टीम में हो)।
Torsten Engelbrecht

6
यह हास्यास्पद लग रहा है, बस एक वर्ग जोड़ने के लिए आपको इस कोड की आवश्यकता है? ऐसा लगता है कि इन क्षेत्रों (विशेषकर सीएसएस-भारी साइट के लिए) में HTML / CSS को हार्ड-कोड करना आसान होगा।
डेविड ५४२

9
यह पागल है django यह इतना अजीब बनाता है!
ब्रायस

103

यह एक कस्टम टेम्पलेट फ़िल्टर का उपयोग करके किया जा सकता है। इस तरह से अपने रूप को प्रस्तुत करने पर विचार करें:

<form action="/contact/" method="post">
  {{ form.non_field_errors }}
  <div class="fieldWrapper">
    {{ form.subject.errors }}
    {{ form.subject.label_tag }}
    {{ form.subject }}
    <span class="helptext">{{ form.subject.help_text }}</span>
  </div>
</form>

form.subjectका एक उदाहरण है BoundFieldजो हैas_widget() तरीका है।

आप my_app / templatetags / myfilters.pyaddclass में एक कस्टम फ़िल्टर बना सकते हैं :

from django import template

register = template.Library()

@register.filter(name='addclass')
def addclass(value, arg):
    return value.as_widget(attrs={'class': arg})

और फिर अपना फ़िल्टर लागू करें:

{% load myfilters %}

<form action="/contact/" method="post">
  {{ form.non_field_errors }}
  <div class="fieldWrapper">
    {{ form.subject.errors }}
    {{ form.subject.label_tag }}
    {{ form.subject|addclass:'MyClass' }}
    <span class="helptext">{{ form.subject.help_text }}</span>
  </div>
</form>

form.subjectsफिर MyClassसीएसएस वर्ग के साथ प्रदान किया जाएगा ।


5
यह समाधान को लागू करने के लिए क्लीनर और आसान में से एक है
उपयोगकर्ता

5
यह उत्तर शीर्ष उत्तर होना चाहिए !!! यह वास्तव में Django प्रस्तावित समाधान की तुलना में क्लीनर है! अच्छी तरह से @Charlesthk
डेविड डी।

4
सुपर सहायक। यह मेरे लिए पहले स्पष्ट नहीं था, लेकिन आप इसका उपयोग कई वर्गों को जोड़ने के लिए भी कर सकते हैं:{{ form.subject|addclass:'myclass1 myclass2' }}
smg

मुझे यह पसंद है कि यह HTML कक्षाओं को HTML फ़ाइलों में रखने की अनुमति देता है। स्टाइल के साथ काम करते समय, मैं स्टाइलशीट और संरचना के बीच आगे और पीछे कूदता हूं, न कि मॉडल और / या फॉर्म।
केविन

29

यदि आप कोई जोड़ना नहीं चाहते हैं फॉर्म में कोड (जैसा कि @ shadfc के उत्तर में टिप्पणियों में बताया गया है), यह निश्चित रूप से संभव है, यहां दो विकल्प हैं।

सबसे पहले, आप HTML को केवल एक बार पूरे फ़ॉर्म के बजाय, व्यक्तिगत रूप से फ़ील्ड में संदर्भित करते हैं :

<form action="" method="post">
    <ul class="contactList">
        <li id="subject" class="contact">{{ form.subject }}</li>
        <li id="email" class="contact">{{ form.email }}</li>
        <li id="message" class="contact">{{ form.message }}</li>
    </ul>
    <input type="submit" value="Submit">
</form>

(ध्यान दें कि मैंने इसे एक अनसोल्ड सूची में भी बदल दिया है ।)

दूसरा, HTML , Django के रूप में आउटपुट फॉर्म पर डॉक्स में ध्यान दें :

फ़ील्ड नाम, 'id_' को फ़ील्ड नाम से जोड़कर बनाया गया है। आईडी विशेषताओं और टैग को डिफ़ॉल्ट रूप से आउटपुट में शामिल किया गया है।

आपके सभी फॉर्म फ़ील्ड में पहले से एक अद्वितीय आईडी है । इसलिए आप विषय क्षेत्र को स्टाइल करने के लिए अपने CSS फ़ाइल में id_subject का संदर्भ लेंगे । मुझे ध्यान देना चाहिए, यह है कि जब आप डिफ़ॉल्ट HTML लेते हैं तो प्रपत्र कैसे व्यवहार करता है , जिसके लिए केवल फॉर्म को प्रिंट करने की आवश्यकता होती है, न कि व्यक्तिगत फ़ील्ड की:

<ul class="contactList">
    {{ form }}  # Will auto-generate HTML with id_subject, id_email, email_message 
    {{ form.as_ul }} # might also work, haven't tested
</ul>

आउटपुट करते समय अन्य विकल्पों के लिए पिछला लिंक देखें (आप टेबल आदि कर सकते हैं)।

नोट - मुझे पता है कि यह प्रत्येक तत्व में एक वर्ग जोड़ने के समान नहीं है (यदि आपने फॉर्म में फ़ील्ड जोड़ा है, तो आपको सीएसएस को भी अपडेट करना होगा) - लेकिन आईडी द्वारा सभी क्षेत्रों को संदर्भित करना काफी आसान है अपने सीएसएस में इस तरह से:

#id_subject, #id_email, #email_message 
{color: red;}

मैंने आपके दूसरे समाधान की कोशिश की लेकिन यह कारगर नहीं हुआ। मैंने id_email के लिए कक्षा बनाई और यह किसी भी परिणाम का उत्पादन करने में विफल रहा।
लगभग एक शुरुआत

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

@almostabeginner भी ध्यान दें, मैंने नमूना कोड का एक सा जोड़ा। मामले में यह केवल पाठ से स्पष्ट नहीं था - आपको फॉर्म को स्वयं ही संदर्भित करना होगा, न कि व्यक्तिगत फ़ील्ड्स, जिस बिंदु पर ऑटो ऑटो-HTML उत्पन्न करता है जिसमें आईडी शामिल हैं , जैसा कि वर्णित है। उम्मीद है कि मदद करता है।
जॉन सी

1
मदद के लिए धन्यवाद, मुद्दा मेरी सीएसएस बिल्कुल नहीं था, मुद्दा कैश से संबंधित था। इसलिए मेरी पुरानी सीएसएस को संग्रहीत किया गया था इसलिए कोई भी परिवर्तन प्रदर्शित नहीं करेगा। मैंने अभी क्रोम से कैश को साफ किया और सभी अपडेट दिखना शुरू हो गए।
लगभग एक शुरुआत

15

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

from django import template
register = template.Library()

@register.filter(name='addcss')
def addcss(field, css):
    return field.as_widget(attrs={"class":css})

इसे अपने ऐप के templatetags / फ़ोल्डर में रखें और अब आप कर सकते हैं

{{field|addcss:"form-control"}}

2
इसे इस पोस्ट के असली उत्तर के रूप में स्वीकार किया जाना चाहिए :)
mvdb

अब तक का सबसे अच्छा समाधान।
मॉड्स बनाम रॉकर्स

1
शानदार, धन्यवाद! वास्तव में टैग लोड करना न भूलें। इसके अलावा, Django 2.1 में एकमात्र तरीका है कि मैं टेम्पलेट खोजने के लिए Django प्राप्त कर सकता हूं सेटिंग्स में एक विकल्प जोड़कर था: 'पुस्तकालयों': {'add_css': 'app.templatetags.tag_name',}
simonbogarde


9

आप इस पुस्तकालय का उपयोग कर सकते हैं: https://pypi.python.org/pypi/django-widget-tweaks

यह आपको निम्नलिखित कार्य करने की अनुमति देता है:

{% load widget_tweaks %}
<!-- add 2 extra css classes to field element -->
{{ form.title|add_class:"css_class_1 css_class_2" }}

1
चार्लेशक समाधान पर एक नज़र डालें, यह एक अतिरिक्त पुस्तकालय को जोड़ने के बिना एक ही है :)
डेविड डी।

@ डेविड: हां, लेकिन विजेट ट्विक्स में बहुत सारे फिल्टर हैं, जैसे कि render_field
मुरलीगिरि

5

तुम कर सकते हो:

<form action="" method="post">
    <table>
        {% for field in form %}
        <tr><td>{{field}}</td></tr>
        {% endfor %}
    </table>
    <input type="submit" value="Submit">
</form>

फिर आप उदाहरण के लिए <td>टैग में कक्षाएं / आईडी जोड़ सकते हैं । आप निश्चित रूप से अपने इच्छित अन्य किसी भी टैग का उपयोग कर सकते हैं। चेक Django रूपों के साथ काम कर रहे एक उदाहरण है कि प्रत्येक के लिए उपलब्ध है के रूप में fieldरूप में ( {{field}}उदाहरण के लिए बस इनपुट टैग, नहीं लेबल और इतने पर outputting है)।


3

पृष्ठ तैयार होने के बाद आवश्यक सीएसएस कक्षाओं को जोड़ने के लिए एक समाधान जावास्क्रिप्ट का उपयोग करना है। उदाहरण के लिए, स्टाइलिंग django form output with बूटस्ट्रैप क्लासेस (संक्षिप्तता के लिए उपयोग किया गया jQuery):

<script type="text/javascript">
    $(document).ready(function() {
        $('#some_django_form_id').find("input[type='text'], select, textarea").each(function(index, element) {
            $(element).addClass("form-control");
        });
    });
</script>

यह आपके व्यवसाय तर्क के साथ स्टाइल की बारीकियों को मिलाने की कुरूपता से बचा जाता है।


3

अपना फॉर्म लिखें जैसे:

    class MyForm(forms.Form):
         name = forms.CharField(widget=forms.TextInput(attr={'class':'name'}),label="Your Name")
         message = forms.CharField(widget=forms.Textarea(attr={'class':'message'}), label="Your Message")

अपने HTML फ़ील्ड में कुछ ऐसा करें:

{% for field in form %}
      <div class="row">
        <label for="{{ field.name}}">{{ field.label}}</label>{{ field }}
     </div>
{% endfor %}

फिर अपने CSS में कुछ इस तरह लिखें:

.name{
      /* you already have this class so create it's style form here */
}
.message{
      /* you already have this class so create it's style form here */
}
label[for='message']{
      /* style for label */
}

आशा है कि यह उत्तर एक कोशिश के लायक है! ध्यान दें कि आपके पास HTML फ़ाइल को प्रस्तुत करने के लिए आपके विचार लिखे होंगे जिसमें फ़ॉर्म शामिल है।


धन्यवाद। लेकिन मैं एक विशिष्ट लेबल पाठ कैसे लिख सकता हूं?
गैकेको बेट्सी 11

2

आपको अपने प्रपत्र वर्ग को ओवरराइड करने की आवश्यकता नहीं हो सकती है __init__, क्योंकि HTML में Django सेट nameऔर idविशेषता है input। आप इस तरह सीएसएस कर सकते हैं:

form input[name='subject'] {
    font-size: xx-large;
}

1
इससे जोड़ना है। दिए गए "विषय = रूप ...", आईडी = "id_subject" और नाम = "विषय" इन विशेषताओं के लिए Django सम्मेलन है। इसलिए आपको भी #id_subject {...}
सोलार्टिक

@ साभार: आप सही कह रहे हैं, धन्यवाद। मैंने इसका उल्लेख नहीं किया, क्योंकि idफॉर्मेट के लिए Django द्वारा बनाए गए क्षेत्र में बहुत सुंदर
बाल मिले

2

यह एक सच में नहीं देखा ...

https://docs.djangoproject.com/en/1.8/ref/forms/api/#more-granular-output

अधिक दानेदार उत्पादन

As_p (), as_ul () और as_table () विधियां केवल आलसी डेवलपर्स के लिए शॉर्टकट हैं - वे एकमात्र तरीका नहीं है जिससे फॉर्म ऑब्जेक्ट प्रदर्शित किया जा सकता है।

क्लास बाउंडफिल्ड HTML का उपयोग करने के लिए या किसी प्रपत्र उदाहरण के एक ही क्षेत्र के लिए उपयोग विशेषताएँ प्रदर्शित करता है।

इस ऑब्जेक्ट का str () ( यूनिकोड ऑन पायथन 2) इस फील्ड के लिए HTML प्रदर्शित करता है।

एक एकल बाउंडफिल्ड को पुनः प्राप्त करने के लिए, फ़ील्ड के नाम को कुंजी के रूप में उपयोग करके अपने प्रपत्र पर शब्दकोश लुकअप सिंटैक्स का उपयोग करें:

>>> form = ContactForm()
>>> print(form['subject'])
<input id="id_subject" type="text" name="subject" maxlength="100" />

सभी बाउंडफीड ऑब्जेक्ट्स को पुनः प्राप्त करने के लिए, फ़ॉर्म को पुन: टाइप करें:

>>> form = ContactForm()
>>> for boundfield in form: print(boundfield)
<input id="id_subject" type="text" name="subject" maxlength="100" />
<input type="text" name="message" id="id_message" />
<input type="email" name="sender" id="id_sender" />
<input type="checkbox" name="cc_myself" id="id_cc_myself" />

फ़ील्ड-विशिष्ट आउटपुट प्रपत्र ऑब्जेक्ट की auto_id सेटिंग का सम्मान करता है:

>>> f = ContactForm(auto_id=False)
>>> print(f['message'])
<input type="text" name="message" />
>>> f = ContactForm(auto_id='id_%s')
>>> print(f['message'])
<input type="text" name="message" id="id_message" />

2

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

  1. आप इसे Django के सामान्य विचारों के साथ उपयोग कर सकते हैं
  2. या अपने स्वयं के रूपों के साथ:

django आयात रूपों से

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100)
    email = forms.EmailField(required=False)
    message = forms.CharField(widget=forms.Textarea)

डिफ़ॉल्ट का उपयोग करने के बजाय:

{{ form.as_p }} or {{ form.as_ul }}

आप रेंडर_फ़ील्ड विशेषता का उपयोग करके इसे अपने तरीके से संपादित कर सकते हैं जो आपको इस उदाहरण की तरह स्टाइल करने का एक अधिक html- तरीका देता है:

template.html

{% load widget_tweaks %}

<div class="container">
   <div class="col-md-4">
      {% render_field form.subject class+="form-control myCSSclass" placeholder="Enter your subject here" %}
   </div>
   <div class="col-md-4">
      {% render_field form.email type="email" class+="myCSSclassX myCSSclass2" %}
   </div>
   <div class="col-md-4">
      {% render_field form.message class+="myCSSclass" rows="4" cols="6" placeholder=form.message.label %}
   </div>
</div>

यह लाइब्रेरी आपको अपने बैकएंड से अच्छी तरह से अलग किए गए फ्रंट फ्रंट को अलग करने का अवसर देती है


1

Django में 1.10 (संभवतः पहले भी) आप इसे निम्नानुसार कर सकते हैं।

नमूना:

class Todo(models.Model):
    todo_name = models.CharField(max_length=200)
    todo_description = models.CharField(max_length=200, default="")
    todo_created = models.DateTimeField('date created')
    todo_completed = models.BooleanField(default=False)

    def __str__(self):
        return self.todo_name

प्रपत्र:

class TodoUpdateForm(forms.ModelForm):
    class Meta:
        model = Todo
        exclude = ('todo_created','todo_completed')

टेम्पलेट:

<form action="" method="post">{% csrf_token %}
    {{ form.non_field_errors }}
<div class="fieldWrapper">
    {{ form.todo_name.errors }}
    <label for="{{ form.name.id_for_label }}">Name:</label>
    {{ form.todo_name }}
</div>
<div class="fieldWrapper">
    {{ form.todo_description.errors }}
    <label for="{{ form.todo_description.id_for_label }}">Description</label>
    {{ form.todo_description }}
</div>
    <input type="submit" value="Update" />
</form>

0

संपादित करें: मैं जो सुझाव दे रहा हूं उसे करने का एक और (थोड़ा बेहतर) तरीका यहां दिया गया है: Django प्रपत्र इनपुट फ़ील्ड स्टाइल

उपरोक्त सभी विकल्प भयानक हैं, बस सोचा कि मैं इसे एक में फेंक दूंगा क्योंकि यह अलग है।

यदि आप अपने प्रपत्रों पर कस्टम स्टाइलिंग, कक्षाएं आदि चाहते हैं, तो आप अपने टेम्पलेट में एक html इनपुट बना सकते हैं जो आपके फॉर्म फ़ील्ड से मेल खाता है। उदाहरण के लिए, चारफिल्ड के लिए, (डिफ़ॉल्ट विजेट है TextInput), मान लें कि आप बूटस्ट्रैप-दिखने वाला टेक्स्ट इनपुट चाहते हैं। आप ऐसा कुछ करेंगे:

<input type="text" class="form-control" name="form_field_name_here">

और जब तक आप फॉर्म फील्ड का नाम html nameएट्रीब्यू से मेल खाते हैं, (और विजेट को इनपुट प्रकार से मेल खाने की आवश्यकता है) तब Django उस फ़ील्ड पर सभी समान सत्यापनकर्ताओं को चलाएगा जब आप चलाते हैं validateयाform.is_valid() और

लेबल, त्रुटि संदेश, और मदद पाठ जैसी अन्य चीजों को स्टाइल करने के लिए बहुत वर्कअराउंड की आवश्यकता नहीं है क्योंकि आप कुछ ऐसा कर सकते हैं form.field.error.as_textऔर उन्हें स्टाइल कर सकते हैं, हालांकि आप चाहते हैं। वास्तविक क्षेत्र वे होते हैं जिनकी आवश्यकता कुछ नगण्य होती है।

मुझे नहीं पता कि यह सबसे अच्छा तरीका है, या जिस तरह से मैं सुझाऊंगा, लेकिन यह एक तरीका है, और यह किसी के लिए सही हो सकता है।

यहां स्टाइलिंग फॉर्म का एक उपयोगी वॉकथ्रू है और इसमें SO पर सूचीबद्ध अधिकांश उत्तर शामिल हैं (जैसे कि विजेट और विजेट ट्विस्ट पर अटारी का उपयोग करना)। https://simpleisbetterthancomplex.com/article/2017/08/19/how-to-render-django-form-manually.html


0

स्टाइलिंग विजेट उदाहरण

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

https://docs.djangoproject.com/en/2.2/ref/forms/widgets/

ऐसा करने के लिए, आप विजेट बनाते समय Widget.attrs तर्क का उपयोग करते हैं:

class CommentForm(forms.Form):
    name = forms.CharField(widget=forms.TextInput(attrs={'class': 'special'}))
    url = forms.URLField()
    comment = forms.CharField(widget=forms.TextInput(attrs={'size': '40'}))

आप प्रपत्र में एक विजेट को संशोधित कर सकते हैं:

class CommentForm(forms.Form):
    name = forms.CharField()
    url = forms.URLField()
    comment = forms.CharField()

    name.widget.attrs.update({'class': 'special'})
    comment.widget.attrs.update(size='40')

या यदि फ़ील्ड को सीधे फॉर्म पर घोषित नहीं किया जाता है (जैसे मॉडल फॉर्म फ़ील्ड), तो आप Form.fields विशेषता का उपयोग कर सकते हैं:

class CommentForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['name'].widget.attrs.update({'class': 'special'})
        self.fields['comment'].widget.attrs.update(size='40')

तब Django प्रदान किए गए आउटपुट में अतिरिक्त विशेषताओं को शामिल करेगा:

>>> f = CommentForm(auto_id=False)
>>> f.as_table()
<tr><th>Name:</th><td><input type="text" name="name" class="special" required></td></tr>
<tr><th>Url:</th><td><input type="url" name="url" required></td></tr>
<tr><th>Comment:</th><td><input type="text" name="comment" size="40" required></td></tr>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.