次のように私はそのモデルのために、次のように私は編集のためにDjango ChoiceFieldは編集後に値を保存しませんか?
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})
、テンプレート、編集フォーム用
class UserProfileForm(forms.ModelForm):
def __init__(self, *args, **kargs):
super(UserProfileForm, self).__init__(*args, **kargs)
class Meta:
model = UserProfile
fields = '__all__'
とビュー、のModelFormを持って
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")
、モデルを持っていますユーザープロフィールフォーム、
<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フォームを編集している間のみです。このフォームの[送信]ボタンをクリックすると、[このフィールドは必須です]が表示されます。 choicefieldをクリックしてオプションを選択すると、それが機能します。しかし、オプションを選択しなかった場合、Noneが保存されます。selectfieldに値を渡す方法を知りたがっています。助けてください?
私はジェンダーのデフォルトは空の文字列を参照してください。それでは、 '' ? –
何をしようとしていますか?選択オプションが選択されていない場合に保存する内容 – Exprator
@ RajaSimonその仕事は、ありがとう –