首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:下拉框

Django:下拉框
EN

Stack Overflow用户
提问于 2020-04-11 23:54:20
回答 1查看 23关注 0票数 0

我的forms.py是这样的:

代码语言:javascript
复制
  SIZE_CHOICES = (
    ('s', 'Small'),
    ('m', 'Medium'),
    ('l', 'Large')
)

    class ChooseSize(forms.Form):
        size_choice = forms.ChoiceField(choices=SIZE_CHOICES)

我的product_page.html尝试实现此表单:

代码语言:javascript
复制
<form method="POST" class="card-body">
          {% csrf_token %}
      <div>
            {{ form.size_choice }}
     </div>
</form>

由于某种原因,size_choices没有出现在网页上。怎么回事?

我的views.py:

代码语言:javascript
复制
class ItemDetailView(DetailView):
    model = Item
    template_name = "home/product-page.html"
EN

回答 1

Stack Overflow用户

发布于 2020-04-12 00:22:32

我试着举个例子,也许对你有帮助。

你的模型是这样的:

代码语言:javascript
复制
  SIZE_CHOICES = (
    ('s', 'Small'),
    ('m', 'Medium'),
    ('l', 'Large')
)
class YourModel(models.Model):
      size = models.CharField(max_length=10, blank=True, default='',choices=SIZE_CHOICES,verbose_name="size")

表单:

代码语言:javascript
复制
class SizeForm(forms.ModelForm):

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

    class Meta:
         model = YourModel
         fields = '__all__'

你的视图

代码语言:javascript
复制
def your_view(request):
    form = SizeForm()
    return render_response('product_page.html',{'form': form})

模板

代码语言:javascript
复制
    <form method="POST" class="card-body">
              {% csrf_token %}
          <div>
                {% for x,y in form.fields.size_choice.choices %}
                {{x}} --> {{y}}
                {% endfor %}
         </div>
    </form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61159630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档