発生している問題
Django初心者です。
Webアプリづくりに挑戦してみようと思い、まずは書籍を見ながらDjangoでWebサイトを作りました。
Django,Docker,Gitなどどれも初めてで、苦労しながらもとりあえずherokuにデプロイさせることができました(もちろんherokuも初めてです)。
問題なくWebサイトが表示され、またDjango管理画面からブログの記事やギャラリー画像の投稿もできるようになったのですが、
一方で投稿した記事や画像が、「heroku restart」コマンドを実行しないかぎりサイトに表示されません。
管理画面から投稿したら、ほとんどリアルタイムでサイトに反映されると思っていたのですが、何が原因なのでしょうか????
試したこと
最初キャッシュが残っているせいで表示できていないのかと思い、キャッシュのクリアやシークレットモードで確認しましたが更新されませんでした。
一晩たっても更新されず、heroku restartコマンドをするとすぐにブログ記事が反映されました。
補足情報(FW/ツールのバージョンなど)
Django 3.1.2
gunicorn 20.0.4
psycopg2-binary 2.8.6
whitenoise 5.2.0
environs 8.0.0
python-dotenv 0.14.0
データベースはpostgreSQL、画像はqiitaを見ながらCloudinaryというところにアップしています。
heroku restart したあとは画像もきちんと表示されています。
herokuは有料のdyno(7$のやつ)を使用しています。
どのような情報を記載したらよいかもあまり分かっていないため、これだけじゃ分からないよ!などあれば指摘して頂ければ情報を追記いたします????
こういう原因が考えられるのではないか?などヒントとなるようなことでも結構ですので、教えていただければ大変ありがたいです。
拙い質問ですが何卒宜しくお願い致します????
追記情報 ブログ部分のコード
ブログに関する部分のコードです。
ブログの記事は、×××.com/ のホームと、×××.com/blog/のブログページのそれぞれに一覧表示として表示させております。詳細ページは作っていません。
カテゴリーの部分は書籍には載っておらず、ググりながら追加したものですのでなにかおかしなところがあるかもしれません????
Python
1blog/models.py 2-------------- 3 4from django.db import models 5 6class Category(models.Model): 7 name = models.CharField('カテゴリー', max_length=50) 8 9 def __str__(self): 10 return self.name 11 12 13class Blog(models.Model): 14 title = models.CharField(max_length=100) 15 body = models.TextField() 16 created_at = models.DateField('作成日', auto_now_add=True) 17 updated_at = models.DateField('更新日', auto_now=True) 18 19 category = models.ForeignKey( 20 Category, verbose_name='カテゴリー', 21 on_delete=models.PROTECT 22 ) 23 image = models.ImageField(upload_to='blogs/',blank=False) 24 25 # 管理画面の一覧にタイトルを表示させるようにする 26 def __str__(self): 27 return self.title 28
Python
1blog/views.py 2------------- 3from django.shortcuts import render 4from django.views.generic import ListView 5from .models import Category, Blog 6from django.views import generic 7 8 9# Create your views here. 10class BlogListView(ListView): 11 model = Blog 12 context_object_name = 'blog_list' 13 template_name = 'blog.html' 14 paginate_by = 5 15 16 def get_queryset(self): 17 return Blog.objects.order_by('-updated_at') 18 19""" カテゴリー一覧 """ 20 21class CategoryView(generic.ListView): 22 model = Blog 23 template_name = 'blog/index.html' 24 25 def get_queryset(self): 26 category = Category.objects.get(name=self.kwargs['category']) 27 queryset = Blog.objects.order_by('-id').filter(category=category) 28 return queryset 29 30 def get_context_data(self, **kwargs): 31 context = super().get_context_data(**kwargs) 32 context['category_key'] = self.kwargs['category'] 33 return context 34
Python
1blog/urls.py 2------------ 3from django.urls import path 4from .views import BlogListView 5from . import views 6 7urlpatterns = [ 8 path('', BlogListView.as_view(), name='blog_list'), 9 path('category/<str:category>/', views.CategoryView.as_view(), name='category'), 10]
回答1件
あなたの回答
tips
プレビュー