A在模型中有一个字段(模型名称为Users_data):
bir_date = models.DateField(verbose_name="")和表示模型的表单:
class Form_registration (ModelForm):
class Meta:
model = Users_data在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>
...我不明白如何将下拉列表与我的表单或模型连接起来。
谢谢你的回答。
发布于 2014-05-17 21:47:13
您需要定义一个widget,并使用widgets on the Meta class为DateField设置它。
可以在Django documentation中找到将年、月和日划分为单独下拉项的特定小部件的一个很好的示例,请参阅DateSelectorWidget
class Form_registration (ModelForm):
class Meta:
model = Users_data
widgets = {'bir_date': widgets.DateSelectorWidget()}这段代码假设您已经创建了一个内部带有DateSelectorWidget类的widgets.py模块。
该任务的另一个很好的小部件是django.forms.extras.widgets.SelectDateWidget
围绕三个选择小部件的
包装:月、日和年各一个。
另请参阅:
希望这能有所帮助。
发布于 2014-05-17 21:45:37
答案是在模型中为您的DateField使用一个选择属性。
下面是如何做的:https://docs.djangoproject.com/en/dev/ref/models/fields/
https://stackoverflow.com/questions/23711969
复制相似问题