A在模型中有一个字段(名称模型是Users_data):
bir_date = models.DateField(verbose_name="")
表示模型的形式:
class Form_registration (ModelForm):
class Meta:
model = Users_data
in 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))
我可以保存表单中的简单数据。
但我需要从我的模型Users_data中的html字段中的下拉列表中保存数据。
<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>
...
我不明白如何将下拉列表与我的表单或模型联系起来。
感谢您的回答。
答案 0 :(得分:1)
您需要定义widget并使用widgets
on the Meta
class为DateField
设置它。
可以在Django documentation中找到将年,月和日分成单独下拉菜单的特定小部件的一个很好的示例,请参阅DateSelectorWidget
:
class Form_registration (ModelForm):
class Meta:
model = Users_data
widgets = {'bir_date': widgets.DateSelectorWidget()}
此代码假设您已在widgets.py
类中创建了DateSelectorWidget
模块。
该任务的另一个好小部件是django.forms.extras.widgets.SelectDateWidget
:
三个选择小部件的包装:每个小时,每天和每个小部件 年。
另见:
希望有所帮助。
答案 1 :(得分:0)
答案是在模型中使用DateField
的选择属性。
以下是如何操作:https://docs.djangoproject.com/en/dev/ref/models/fields/