gpt4 book ai didi

python - Django ChoiceField 在编辑后保存 None 值?

转载 作者:太空宇宙 更新时间:2023-11-04 02:49:28 24 4
gpt4 key购买 nike

我有一个模型如下,

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__'

和用于编辑表单的 View ,

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

以及用于编辑用户个人资料表单的模板,

    <div class="col-md-3">
<div class="form-group">
<label>Gender <star>*</star></label>
<select name="gender" required class="selectpicker" value="{{ userprofile.gender }}" data-title="{{ userprofile.gender }}" data-style="btn-default btn-block" data-menu-style="dropdown-blue">
{% for Male,Female in form.fields.gender.choices %}
<option value="{{ Male }}"{% if form.fields.gender.value == Male %} selected{% endif %}>{{ Female }}</option>
{% endfor %}
</select>

问题仅在编辑 userprofile 表单时出现,当我单击此表单的提交按钮时,它会出现“此字段为必填项”。当我单击选择字段并选择一个选项时,它起作用了。但如果我没有选择一个选项,它会保存一个 None。我想知道如何将值传递给 selectfield。请帮忙?

最佳答案

您已将默认性别声明为 "" 空字符串。因此,如果用户未选择任何内容,请在您的表单中输入空字符串...

<option selected="selected" value=""></option>

关于python - Django ChoiceField 在编辑后保存 None 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44300003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com