質問編集履歴

1

ブログ部分のコードを追記しました

2020/12/20 22:24

投稿

Neru_K
Neru_K

スコア19

test CHANGED
File without changes
test CHANGED
@@ -57,3 +57,175 @@
57
57
  こういう原因が考えられるのではないか?などヒントとなるようなことでも結構ですので、教えていただければ大変ありがたいです。
58
58
 
59
59
  拙い質問ですが何卒宜しくお願い致します????
60
+
61
+
62
+
63
+ ### 追記情報 ブログ部分のコード
64
+
65
+ ブログに関する部分のコードです。
66
+
67
+ ブログの記事は、×××.com/ のホームと、×××.com/blog/のブログページのそれぞれに一覧表示として表示させております。詳細ページは作っていません。
68
+
69
+ カテゴリーの部分は書籍には載っておらず、ググりながら追加したものですのでなにかおかしなところがあるかもしれません????
70
+
71
+
72
+
73
+ ```Python
74
+
75
+ blog/models.py
76
+
77
+ --------------
78
+
79
+
80
+
81
+ from django.db import models
82
+
83
+
84
+
85
+ class Category(models.Model):
86
+
87
+ name = models.CharField('カテゴリー', max_length=50)
88
+
89
+
90
+
91
+ def __str__(self):
92
+
93
+ return self.name
94
+
95
+
96
+
97
+
98
+
99
+ class Blog(models.Model):
100
+
101
+ title = models.CharField(max_length=100)
102
+
103
+ body = models.TextField()
104
+
105
+ created_at = models.DateField('作成日', auto_now_add=True)
106
+
107
+ updated_at = models.DateField('更新日', auto_now=True)
108
+
109
+
110
+
111
+ category = models.ForeignKey(
112
+
113
+ Category, verbose_name='カテゴリー',
114
+
115
+ on_delete=models.PROTECT
116
+
117
+ )
118
+
119
+ image = models.ImageField(upload_to='blogs/',blank=False)
120
+
121
+
122
+
123
+ # 管理画面の一覧にタイトルを表示させるようにする
124
+
125
+ def __str__(self):
126
+
127
+ return self.title
128
+
129
+
130
+
131
+ ```
132
+
133
+
134
+
135
+ ```Python
136
+
137
+ blog/views.py
138
+
139
+ -------------
140
+
141
+ from django.shortcuts import render
142
+
143
+ from django.views.generic import ListView
144
+
145
+ from .models import Category, Blog
146
+
147
+ from django.views import generic
148
+
149
+
150
+
151
+
152
+
153
+ # Create your views here.
154
+
155
+ class BlogListView(ListView):
156
+
157
+ model = Blog
158
+
159
+ context_object_name = 'blog_list'
160
+
161
+ template_name = 'blog.html'
162
+
163
+ paginate_by = 5
164
+
165
+
166
+
167
+ def get_queryset(self):
168
+
169
+ return Blog.objects.order_by('-updated_at')
170
+
171
+
172
+
173
+ """ カテゴリー一覧 """
174
+
175
+
176
+
177
+ class CategoryView(generic.ListView):
178
+
179
+ model = Blog
180
+
181
+ template_name = 'blog/index.html'
182
+
183
+
184
+
185
+ def get_queryset(self):
186
+
187
+ category = Category.objects.get(name=self.kwargs['category'])
188
+
189
+ queryset = Blog.objects.order_by('-id').filter(category=category)
190
+
191
+ return queryset
192
+
193
+
194
+
195
+ def get_context_data(self, **kwargs):
196
+
197
+ context = super().get_context_data(**kwargs)
198
+
199
+ context['category_key'] = self.kwargs['category']
200
+
201
+ return context
202
+
203
+
204
+
205
+ ```
206
+
207
+
208
+
209
+ ```Python
210
+
211
+ blog/urls.py
212
+
213
+ ------------
214
+
215
+ from django.urls import path
216
+
217
+ from .views import BlogListView
218
+
219
+ from . import views
220
+
221
+
222
+
223
+ urlpatterns = [
224
+
225
+ path('', BlogListView.as_view(), name='blog_list'),
226
+
227
+ path('category/<str:category>/', views.CategoryView.as_view(), name='category'),
228
+
229
+ ]
230
+
231
+ ```