我的模型如下,
f(1)
我为该模型设置了如下模型,
gender = (
('Male', 'Male'),
('Female', 'Female'),
)
class UserProfile(models.Model):
profile_id = models.CharField(max_length=60, blank=True,default='',)
gender = models.CharField(max_length=60, blank=True, default='',
choices=gender,verbose_name="gender")
用于编辑表单的视图,
class UserProfileForm(forms.ModelForm):
def __init__(self, *args, **kargs):
super(UserProfileForm, self).__init__(*args, **kargs)
class Meta:
model = UserProfile
fields = '__all__'
用于编辑userprofile表单的模板,
def userprofile_edit(request, pk):
userprofile = UserProfile.objects.get(pk=pk)
form = UserProfileForm(request.POST or None,instance=userprofile)
if request.method == "POST":
form = UserProfileForm(request.POST or None,instance=userprofile)
if form.is_valid():
post = form.save(commit=False)
post.save()
return redirect('userprofile')
else:
form = UserProfileForm(instance=userprofile)
else:
form = UserProfileForm(request.POST or None,instance=userprofile)
return render(request,'userprofiles/user_edit.html', {'form':form,'userprofile': userprofile})
问题仅在于编辑userprofile表单时,当我单击此表单的提交按钮时,它会引发"此字段是必需的"。当我单击选择域并选择一个选项时,它可以工作。但如果我没有选择一个选项,它会保存一个None.I想知道如何将值传递给selectfield。请帮帮忙?
答案 0 :(得分:2)
您已将性别默认声明为""
空字符串。因此,如果用户没有选择任何...
<option selected="selected" value=""></option>
答案 1 :(得分:0)
由于您使用的是模型表单,因此无需为表单编写HTML,无论如何您都要从视图中返回表单。您可以将其写为:
<div>
<form action="your url" method="POST">
{% csrf_token %}
{{ form.as_p }}
<butoon type="submit">Update</button>
</form>
选择字段作为空白的唯一可能性是它可能未被选中。