前提・実現したいこと
Django Girlsのチュートリアルを見ながらブログを作成しました。
ローカルでは動いたのですが
PythonAnywareにてデプロイすると
sqlliteのデータを読み取れず、エラーになります。
試しに、my-first-blog/blog/templates/blog/post_list.htmlを
{{ posts }}だけにすると <QuerySet []> とのみ表示されます。
sqlliteにはブログのエントリーが生成されています。
どうしたらブログの内容を表示できますでしょうか。
発生している問題・エラーメッセージ
PythonAnywareでデプロイしたアプリがsqlliteを読み込まない
該当のソースコード
my-first-blog/blog/templates/blog/post_list.html
<html> <head> <title>Django Girls blog</title> </head> <body> <div> <h1><a href="/">Django Girls Blog 12</a></h1> </div> <h2>TEST1</h2> {{ posts }} <h2>TEST2</h2> </body> </html>
この状態でリロードすると<QuerySet []>と表示されます。
Django Girls Blog 12 TEST1 <QuerySet []> TEST3
試したこと
sqliteの中身を確認しました。
$ sqlite3 db.sqlite3 sqlite> .mode line sqlite> select * from django_admin_log ...> ; id = 1 action_time = 2020-07-17 05:17:14.871044 object_id = 1 object_repr = はじめてのジャンゴ2 change_message = [{"added": {}}] content_type_id = 7 user_id = 1 action_flag = 1 id = 2 action_time = 2020-07-30 10:41:26.974273 object_id = 2 object_repr = ジャンゴでぶろぐ! change_message = [{"added": {}}] content_type_id = 7 user_id = 1 action_flag = 1 id = 3 action_time = 2020-07-30 10:41:47.228546 object_id = 3 object_repr = ジャンゴができた! change_message = [{"added": {}}] content_type_id = 7 user_id = 1 action_flag = 1 sqlite> sqlite> .exit
(追記)
Python3.7でデプロイし直し、ローカルとPythonAnywareのバージョンを合わせました。
~~Djangoのインタラクティブコンソールから見るとレコードがありません!
~~
デプロイし直し後にユーザー再作成、レコード追加→確認できました。
$ python manage.py shell Python 3.7.5 (default, Nov 14 2019, 22:26:37) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> >>> from blog.models import Post >>> Post.objects.all() <QuerySet [<Post: ジャンゴでぶろぐVer3>, <Post: ジャンゴでぶろぐ3度目の正直>]> >>> exit
しかしhttp://matsufff.pythonanywhere.com/
では<QuerySet []>のままです。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。