質問編集履歴

1

コードの追記、文章の追記

2020/09/30 08:43

投稿

nagimasa
nagimasa

スコア13

test CHANGED
@@ -1 +1 @@
1
- 【python:Django】モデルに紐づいた複数枚のギャラリーページ作り方がわからな
1
+ 【python:Django】モデルに紐づいた複数枚のギャラリーページ作り
test CHANGED
@@ -8,9 +8,69 @@
8
8
 
9
9
  実現したいこと
10
10
 
11
- djangoのモデに登録したもに紐づいたギャラリーページの作りかた
11
+ 店舗紹介ポータサイト(食べログ風)個別のページで店舗の外観、内観写真や提供されるサービスの写真をまとめたギャラリーページ
12
12
 
13
+
14
+
15
+ 例えば
16
+
17
+ 焼き鳥Aという紹介ページに、店舗の見出し写真と営業情報を掲載し、ギャラリーページでは提供される料理や店内写真などが見れるようにしたい
18
+
19
+ 食べログのような、店舗紹介サイトです。
20
+
21
+ 理想はギャラリーに掲載する写真にタイトルも付けたいと考えています。
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+ Djangoのadminの管理サイトが便利だと思ったので、できればデータの追加や削除などの操作、画像のアップロードも管理サイトで行いたいと思っています。
30
+
31
+ ですが、Djangoの管理サイトでは個別に対する複数の画像のアップは対応していないという記事を見かけたことがあります。
32
+
33
+ その場合、実現させるにはforms.pyを用意し操作する必要があるのでしょうか?
34
+
35
+
36
+
37
+ ```python
38
+
39
+ settings.py
40
+
41
+
42
+
43
+ import os
44
+
45
+
46
+
47
+ MEDIA_URL = '/media/'
48
+
49
+ MEDIA_ROOT = os.path.join(BASE_DIR, 'static')
50
+
51
+ ```
52
+
53
+ ```python
54
+
55
+ urls.py
56
+
57
+
58
+
59
+ from django.urls import path
60
+
61
+ from .import views
62
+
63
+
64
+
13
- 可能ならadminから管理したい
65
+ urlpatterns = [
66
+
67
+ path('', views.shops_index, name='index'),
68
+
69
+ path('shops/detail/<int:pk>', views.ShopDetail.as_view(), name='shop_detail'),
70
+
71
+ ]
72
+
73
+ ```
14
74
 
15
75
 
16
76
 
@@ -26,28 +86,68 @@
26
86
 
27
87
 
28
88
 
29
- class shops(models.Model):
89
+ class Shops(models.Model):
30
90
 
31
91
  shop_name = models.CharField(max_length=255, verbose_name="お店")
32
92
 
33
93
  category = models.ForeignKey(Category, on_delete=models,PROTECT)
34
94
 
95
+ created_date = models.DateField(default=timezone.now, verbose_name="作成日")
96
+
35
97
  main_image = models.ImageField(upload_to="media/", blank=True)
98
+
99
+ #ここにgallery_image = models...という風に書いて複数の写真を紐づけることはできないのでしょうか?
36
100
 
37
101
  ```
38
102
 
39
103
 
40
104
 
41
- このようなものがあったとします。
105
+ ```python
42
106
 
43
- このshopsで近隣のお店を紹介するサイトを作ろうと思っています。
107
+ views.py
44
-
45
- ですので、飲食店や小売店などさまざまなお店を登録していく予定です。
46
-
47
- そこで各shopに対してメイン画像と、ギャラリーページを用意したいと考えています。
48
-
49
- メイン画像についてはImageFieldで解決できると思っているのですが、ギャラリーページを用意するにあたって、どのようなフィールドを用いたらいいのかわかりません。
50
108
 
51
109
 
52
110
 
111
+ from .models import Shops, Category
112
+
113
+
114
+
115
+ class ShopDetail(generic.DetailView):
116
+
117
+ model = Shops
118
+
119
+ ```
120
+
121
+
122
+
123
+ ```html
124
+
125
+ shops/detail/1/.html
126
+
127
+
128
+
129
+ {% if shops.created_date %}
130
+
131
+
132
+
133
+ <div>
134
+
135
+ <p>{{ shops.shop_name }}</p>
136
+
137
+ </div>
138
+
139
+ <div>
140
+
53
- adminを使った管サイトで各ショップのメイン・ギャラリー画像をアップロードなどを行いたいのですが可能でしょうか?
141
+ <!-- 以下に焼き鳥Aの料写真や店内写真などをあるだけ表示させたい -->
142
+
143
+ <img src="1">
144
+
145
+ <img src="2">
146
+
147
+ <img src="3">
148
+
149
+ </div>
150
+
151
+ {% endif %}
152
+
153
+ ```