2016-04-19 19 views
5

Cho một ChoiceField trong DjangoRender tùy chọn ChoiceField trong Django mẫu

fruits = ChoiceField(label="Fruits", choices=(('A', 'Apple'), 
    ('B', 'Banana'), ('C', 'Cherry') 
) 

Làm thế nào để hiển thị các tùy chọn hình thức trong Django Templates trong 1.9? Ví dụ: Tôi đã thử những điều sau nhưng không thể hiển thị dữ liệu biểu mẫu:

<table class="table table-bordered table-condensed"> 
     <tr> 
     <th> 
     <label for="{{form.fruits.id_label}}"> 
      {{form.fruits.label}} 
     </label> 
     </th> 
     <td>{% for value, displayable in form.fruits.choices %} 
      <option value="{{value}}">{{displayable}}</option> 
      {% endfor %} 
     </td> 
     </tr> 
    </table> 
+0

Thực sự đơn giản đọc doc này https://docs.djangoproject.com/en/1.9/ref/forms/widgets/#selectmultiple – rakwen

+0

liên kết này cung cấp cho tôi giải thích tất cả các bạn wan để biết về tùy chỉnh làm choiceField! chúc may mắn ! – rakwen

+0

@rakwen tôi đã đọc tài liệu nhưng vẫn không có kết quả. Có lẽ bạn có thể giúp với điều này để thay thế? – bryansis2010

Trả lời

3

Theo mặc định, Django cung cấp cho chúng tôi danh sách thả xuống đơn giản như một đại diện trực quan của trường lựa chọn. Chỉ cần tạo và một thể hiện của biểu mẫu trong khung nhìn của bạn, chuyển nó trong ngữ cảnh. Dưới đây là một ví dụ,

giả mô hình ví dụ của chúng tôi là,

gender = (
    ('x', 'Male'), 
    ('y', 'Female'), 
    ) 

class User(models.Model): 
     gender = models.CharField(max_length=60, blank=True, default='',choices=gender,verbose_name="gender") 

và hình thức mô hình của chúng tôi,

class UserForm(forms.ModelForm): 

    def __init__(self, *args, **kargs): 
     super(UserForm, self).__init__(*args, **kargs) 

    class Meta: 
     model = User 
     fields = '__all__' 

Chỉ cần tạo một thể hiện của các hình thức theo quan điểm của bạn, vượt qua nó trong bối cảnh:

def my_view(request): 
form = UserForm() 
return render_response('template.html',{'form': form}) 

và sau đó hiển thị nó trong mẫu bằng {{form.my_choice_field}}.

<div class="col-md-4"> 
    <div class="form-group"> 
    <label>Gender</label> 
    <select name="gender" class="selectpicker" data-title="Select Gender" data-style="btn-default btn-block" data-menu-style="dropdown-blue"> 
    {% for x,y in form.fields.gender.choices %} 
     <option value="{{ x }}"{% if form.fields.gender.value == x %} selected{% endif %}>{{ y }}</option> 
    {% endfor %} 
    </select> 
    </div> 
</div> 
Các vấn đề liên quan