Q&A
度々お世話になっております。
半日格闘してみたのですが改善しなかったため、投稿させて頂きます。
お知恵を頂けるとありがたいです。どうぞ宜しくお願い致します。
実現したいこと
- ModelFormを用いて登録を正常に完了させる
前提
ModelFormを用いて登録を行おうとした(submitボタン押下)所、以下のエラーが発生しました。
発生している問題・エラーメッセージ
ChromeおよびEdgeのエラー
ターミナル
python
1 2# models.py 3class Mitsumori(BaseModel): 4 5#(~中略~Model項目) 6#※項目の一部は外部キーを用いています 7 8 # #登録後に遷移する画面を指定 9 def get_absolute_url(self): 10 return reverse('Home:home/') 11 12#forms.py 13default_exclude = ['created_at','created_by','updated_at', 14 'updated_by', 'id', 15 ] 16 17class MitsumoriForm(forms.ModelForm): 18 19 #入力フォームの上書き 20 denpyo_biko = forms.CharField( 21 widget=forms.Textarea(attrs={'rows':3, 'cols':50}), 22 label='伝票備考' 23 ) 24 25 class Meta: 26 model = Mitsumori 27 fields = '__all__' 28 exclude = default_exclude 29 exclude.extend(['total_price', 'total_tax', 'total_hachu_price', 30 ]) 31 32 def save(self, *args, **kwargs): 33 obj = super(MitsumoriForm, self).save(commit=False, *args, **kwargs) 34 obj.created_at = datetime.now() 35 obj.created_by = 'yamada' 36 obj.id = '1' 37 obj.total_price = 0 38 obj.total_tax = 0 39 obj.total_hachu_price = 0 40 obj.save() 41 return obj 42 43#views.py 44class MitsumoriEntryView(View): 45 46 def get(self, request, *args, **kwargs): 47 context = { 48 'main_form' : MitsumoriForm(), 49 } 50 51 return TemplateResponse(request, 'entry_mitsumori.html', context) 52 53# template 54{% block content_main %} 55 <form method="post"> 56 {% csrf_token %} 57 <table> 58 {{ main_form.as_table }} 59 </table> 60 <input type="submit" value="登録"> 61 </form> 62{% endblock %}
試したこと
- 405エラーはjavascriptが影響していることがあるとの情報があったため、scriptを全て取り除いて動かしてみましたが改善しませんでした
- 表示するmodelの項目を絞らずに全て表示させ、saveメソッドをコメントアウトしました(line28~41の部分)が改善しませんでした。
補足情報(FW/ツールのバージョンなど)
django 4.1
python 3.10.4
google chrome 110.0.5481.180
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。