首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >姜戈。如何连接下拉列表(从html)和表单?

姜戈。如何连接下拉列表(从html)和表单?
EN

Stack Overflow用户
提问于 2014-05-17 21:36:00
回答 2查看 2K关注 0票数 2

A在模型中有一个字段(模型名称为Users_data):

代码语言:javascript
运行
复制
bir_date = models.DateField(verbose_name="")

和表示模型的表单:

代码语言:javascript
运行
复制
class Form_registration (ModelForm):
class Meta:
    model = Users_data

在html中:

代码语言:javascript
运行
复制
<form name="registration" method="post" action="save_data_user/">
{% csrf_token %}
{{ form_registration.as_p }}
<input type="submit" value="SignUp">
</form>

保存表单的视图:

代码语言:javascript
运行
复制
def saves_data_user_on_registration (request):
if request.method == 'POST':
    c = {}
    c.update(csrf(request))
    form_user_data = Form_registration(request.POST, request.FILES)
    if form_user_data.is_valid():
        print form_user_data.errors
        form_user_data.save()
        return render_to_response('see_you_later.html', c,           context_instance=RequestContext(request))
    else:
        print form_user_data.errors
        return render_to_response('error.html', c, context_instance=RequestContext(request))

我可以将简单的数据保存在表单中。

但我需要从我的模型Users_data的字段中从html保存一个下拉列表中的数据。

代码语言:javascript
运行
复制
<select name="DateOfBirth_Month">
<option>Month</option>
<option value="1">January</option>
<option value="2">February</option>
...



 <select id="cd-dropdown" class="cd-select">
 <option value="-1" selected>Day</option>
 <option value="1">01</option>
 <option value="2">02</option>
 ...

<select name="DateOfBirth_Year">
<option>Year</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
...

我不明白如何将下拉列表与我的表单或模型连接起来。

谢谢你的回答。

EN

回答 2

Stack Overflow用户

发布于 2014-05-17 21:47:13

您需要定义一个widget,并使用widgets on the Meta classDateField设置它。

可以在Django documentation中找到将年、月和日划分为单独下拉项的特定小部件的一个很好的示例,请参阅DateSelectorWidget

代码语言:javascript
运行
复制
class Form_registration (ModelForm):
    class Meta:
        model = Users_data
        widgets = {'bir_date': widgets.DateSelectorWidget()}

这段代码假设您已经创建了一个内部带有DateSelectorWidget类的widgets.py模块。

该任务的另一个很好的小部件是django.forms.extras.widgets.SelectDateWidget

围绕三个选择小部件的

包装:月、日和年各一个。

另请参阅:

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-05-17 21:45:37

答案是在模型中为您的DateField使用一个选择属性。

下面是如何做的:https://docs.djangoproject.com/en/dev/ref/models/fields/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23711969

复制
相关文章

相似问题

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