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

2024-04-25 14:16:11 发布

您现在位置:Python中文网/ 问答频道 /正文

A在模型中有一个字段(名称model是Users\u data):

bir_date = models.DateField(verbose_name="")

以及代表模型的形式:

^{pr2}$

在html中:

<form name="registration" method="post" action="save_data_user/">
{% csrf_token %}
{{ form_registration.as_p }}
<input type="submit" value="SignUp">
</form>

保存表单的视图:

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))

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

但我需要在下拉列表中保存一个数据,从我的模型用户的字段中。在

<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>
...

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

谢谢你的回答。在


Tags: name模型form表单datavaluerequestsave
2条回答

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

以下是操作方法:https://docs.djangoproject.com/en/dev/ref/models/fields/

您需要定义一个widget,并使用^{} on the ^{} classDateField设置它。在

可以在Djangodocumentation中找到一个将年、月和日拆分为单独下拉列表的小部件的好例子,请参见DateSelectorWidget

class Form_registration (ModelForm):
    class Meta:
        model = Users_data
        widgets = {'bir_date': widgets.DateSelectorWidget()}

这段代码假设您已经创建了一个widgets.py模块,其中有DateSelectorWidget类。在

另一个很好的任务小部件是^{}

Wrapper around three Select widgets: one each for month, day, and year.

另请参见:

希望有帮助。在

相关问题 更多 >