止まらずに出たエラー内容 ValueError at /metal/buy/ Field 'weight' expected a number but got '任意の文字列'. Request Method: POST Request URL: http://127.0.0.1:8000/metal/buy/ Django Version: 4.2 Exception Type: ValueError Exception Value: Field 'weight' expected a number but got '任意の文字列'. Exception Location: D:\my_python\live-seminar-materials\221211_live_seminar\flask_to_django-main\venv\Lib\site-packages\django\db\models\fields\__init__.py, line 2057, in get_prep_value Raised during: metal.views.MetalBuy Python Executable: D:\my_python\live-seminar-materials\221211_live_seminar\flask_to_django-main\venv\Scripts\python.exe Python Version: 3.11.1 Python Path: ['D:\\my_python\\live-seminar-materials\\221211_live_seminar\\flask_to_django-main', 'C:\\Users\\*****\\AppData\\Local\\Programs\\Python\\Python311\\python311.zip', 'C:\\Users\\*****\\AppData\\Local\\Programs\\Python\\Python311\\DLLs', 'C:\\Users\\*****\\AppData\\Local\\Programs\\Python\\Python311\\Lib', 'C:\\Users\\*****\\AppData\\Local\\Programs\\Python\\Python311', 'D:\\my_python\\live-seminar-materials\\221211_live_seminar\\flask_to_django-main\\venv', 'D:\\my_python\\live-seminar-materials\\221211_live_seminar\\flask_to_django-main\\venv\\Lib\\site-packages'] Server time: Sat, 27 May 2023 12:57:06 +0900
荏隈 直樹さんの投稿
(投稿ID: 5481) 添付ファイルのダウンロード権限がありません
出席できてなかったゼミなどがあったので、改めてゼミ動画を追いかけているのですが
ここでちょっと気になった点が一つ
以下のゼミライブにつきまして
https://forum.pc5bai.com/lesson/page/1960/
Pycharmを使用して、処理をデバッグで止めようと、ブレイクポイントを挿入して動画のように処理を止めようとしているのですが(本動画の38分あたりを再現しようとしています)
止まってくれませんでした。
具体的な操作としては
http://127.0.0.1:8000/metal/buy/
で、"重さ"を数値以外を入れて送信してエラーを起こしたのですが
views.pyにブレイクポイントを入れても止まってくれません。
念のためviews.pyのフルパスは以下です。
D:\my_python\live-seminar-materials\221211_live_seminar\flask_to_django-main\metal\views.py
ブレイクポイントで止まって検証するにはどのようにしたらよろしいでしょうか?
止まらずに出たエラー内容
ValueError at /metal/buy/
Field 'weight' expected a number but got '任意の文字列'.
Request Method: POST
Request URL: http://127.0.0.1:8000/metal/buy/
Django Version: 4.2
Exception Type: ValueError
Exception Value:
Field 'weight' expected a number but got '任意の文字列'.
Exception Location: D:\my_python\live-seminar-materials\221211_live_seminar\flask_to_django-main\venv\Lib\site-packages\django\db\models\fields\__init__.py, line 2057, in get_prep_value
Raised during: metal.views.MetalBuy
Python Executable: D:\my_python\live-seminar-materials\221211_live_seminar\flask_to_django-main\venv\Scripts\python.exe
Python Version: 3.11.1
Python Path:
['D:\\my_python\\live-seminar-materials\\221211_live_seminar\\flask_to_django-main',
'C:\\Users\\*****\\AppData\\Local\\Programs\\Python\\Python311\\python311.zip',
'C:\\Users\\*****\\AppData\\Local\\Programs\\Python\\Python311\\DLLs',
'C:\\Users\\*****\\AppData\\Local\\Programs\\Python\\Python311\\Lib',
'C:\\Users\\*****\\AppData\\Local\\Programs\\Python\\Python311',
'D:\\my_python\\live-seminar-materials\\221211_live_seminar\\flask_to_django-main\\venv',
'D:\\my_python\\live-seminar-materials\\221211_live_seminar\\flask_to_django-main\\venv\\Lib\\site-packages']
Server time: Sat, 27 May 2023 12:57:06 +0900
【追記】
71行目にブレークポイントを入れても、事象は同じでした。
なお、普通にpyファイルをデバックモードで動かすときには、普通にブレークポイントで止まります。
動画も添付します。
荏隈 直樹さんのコメント
(コメントID: 8179) 添付ファイルのダウンロード権限がありません
"runserver sqlite"になっていることですが、ここは関係ありますでしょうか?
荏隈 直樹さんのコメント
(コメントID: 8180)
小川 慶一さんのコメント
(コメントID: 8181)
試したことは、以下の2ということですね。
[1] 他のところにブレークポイントを入れてみたけどだめ
[2] venv を作り直して入り直したがだめ
まず疑いたいのは、Pycharmのデバッグ以外のところで同じ Django プロジェクトが起動していないかですね。
たとえば、PowerShellや、二重起動されている [F10] の run コマンドで実行されているものがないか。
特に、これは、慣れないうちは、やっていないつもりでやってしまいがちです。
最悪PC再起動すればすべての実行は終了するので、それから Pycharm を起動してまっさきに [F9] して試してみる。
それから、まだ試されていないことといえば、Pycharmのプロジェクト情報の削除でしょうか。
Pycharmのプロジェクト情報の削除をするには、Pycharm を終了し、 .idea ディレクトリをまるごと削除します。
それからPycharmを再起動してどうなるか。
小川 慶一さんのコメント
(コメントID: 8182)
>"runserver sqlite"になっていることですが、ここは関係ありますでしょうか?
たぶんないかと。
気になるようでしたら、ボックス内の "runserver sqlite" という文字列をクリック → "Edit Configration" をクリックして設定画面を見てみてください。
そのときは、 "Allow parallel run" のチェックが入っていないことも念のため確認したいです。
荏隈 直樹さんのコメント
(コメントID: 8183) 添付ファイルのダウンロード権限がありません
今まではPycharmのTerminalタブで、python manage.py runserverを実行した状態でviews.pyにブレイクポイントを入れてデバッグしようとしていました。それじゃ駄目なんですね。
そもそもrunserverを実行した状態でないとhttp://127.0.0.1:8000/でサイト自体表示されないと思っていました。
runserverを実行せずにF9でデバッグモードを実行するとちゃんとローカルサイトは表示されて、ブレイクポイントで止まってくれました。
小川 慶一さんのコメント
(コメントID: 8184)