modelとformの項目が同じ場合、views.pyでCreateViewを継承して使うとsuper().form_valid(form)だけでsaveまでしてくれるようですが、画面入力された値を編集してmodelにセットして登録する場合はどのように書けばよろしいでしょうか?
やりたいことはformのdate_y, m, d, h, mを使って年月日時分をそれぞれのテキストボックスで画面入力し、登録時には1つにしてmodelのdatetimeに登録したいです。
よろしくお願いします。
models.py
Python
1class Hoge(models.Model): 2 name = models.CharField('名称') 3 memo = models.CharField('メモ', max_length=2048) 4 datetime = models.DateTimeField('日時')
forms.py
Python
1class HogeForm(forms.ModelForm): 2 name = forms.CharField(required=True, label='名称') 3 memo = forms.CharField(required=False, label='メモ', max_length=2048, widget=forms.Textarea()) 4 date_y = forms.CharField(required=True, label='年') 5 date_m = forms.CharField(required=True, label='月') 6 date_d = forms.CharField(required=True, label='日') 7 date_h = forms.CharField(required=True, label='時') 8 date_m = forms.CharField(required=True, label='分')
views.py
Python
1class HogeCreateView(django.views.generic.CreateView): 2 model = Hoge 3 form_class = HogeForm 4 success_url = reverse_lazy('hoge:hoge') 5 template_name = 'hoge/hoge.html' 6 7 def form_valid(self, form): 8 result = super().form_valid(form) 9 messages.success( 10 self.request, 'ほげを追加しました'.format(form.instance)) 11 return result
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/06 08:34
2019/04/06 09:32
2019/04/06 09:38