ユーザーがフォームをいっぱいにした後にデータを変更しようとしています。しかし、前向きのユーザーがラジオボタンをクリックするのは簡単ですが、バックエンドでは必要な情報を入力してください。django - POST後にフォームデータを変更する
ここでは、ユーザーに「今日」または「別の日」のいずれかを選択したい日付入力を取得しようとしています。 「今日」が選択されている場合、その特定の日の日付をデータベースに取り込むようにします。次のように私のコードは次のとおりです。
#models.py
DATE_CHOICES = (
('Today', 'Today'),
('Other days', 'Other days'),
)
class Mileage(models.Model):
date = models.CharField(max_length=30, choices= DATE_CHOICES)
def __str__(self): # __unicode__ on Python 2
return self.date
class MileageForm(ModelForm):
date = forms.ChoiceField(choices=DATE_CHOICES, widget=forms.RadioSelect)
class Meta:
model = Mileage
fields = ['date']
#views.py
def home(request):
form = MileageForm(request.POST or None)
context = {
"form": form,
}
if form.is_valid():
if form.cleaned_data.get('date') == "Today":
form.cleaned_data["date"]= time.strftime("%d/%m/%Y")
form.save()
form = MileageForm()
context = {
"form": form,
}
return render(request, 'home.html', context)
私は入力がPOSTですぐに捕獲され、この場合の「今日は」が定義されて選択肢だったされていることを理解しています。 「今日」の変更をデータベースに保存するときに実際の日付自体に変更する方法はありますか?
でDjangoのフォーム
clean_<field name>
より多くの詳細を読むことができる値を設定します'today'に設定します。それ以外の場合は、デフォルトをtodayに設定します。 – Sayse