2015-06-30 9 views
11

में ड्रॉपडाउन मैं Django models.py में एक फ़ील्ड बनाना चाहता हूं जो ड्रॉपडाउन के रूप में प्रस्तुत करेगा और उपयोगकर्ता वहां से विकल्पों का चयन कर सकते हैं।Django मॉडल

मैं 5 विकल्प हैं, तो:

  • ग्रीन
  • नीले
  • लाल
  • ऑरेंज
  • काले

मैं models.py और Forms.py तो मेरे कोड कैसे लिखना चाहिए कि टेम्पलेट इसे पसंद करता है एक ड्रॉपडाउन तत्व?

उत्तर

13
मॉडल से टेम्पलेट के लिए

:

models.py

COLOR_CHOICES = (
    ('green','GREEN'), 
    ('blue', 'BLUE'), 
    ('red','RED'), 
    ('orange','ORANGE'), 
    ('black','BLACK'), 
) 

class MyModel(models.Model): 
    color = models.CharField(max_length=6, choices=COLOR_CHOICES, default='green') 

forms.py

class MyModelForm(ModelForm): 
    class Meta: 
     model = MyModel 
     fields = ['color'] 

views.py

class CreateMyModelView(CreateView): 
    model = MyModel 
    form_class = MyModelForm 
    template_name = 'myapp/template.html' 
    success_url = 'myapp/success.html' 

template.html

<form action="" method="post">{% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Create" /> 
</form> 

या केवल अपने चुनिंदा क्षेत्र प्रदर्शित करने के लिए:

{{ form.color }}