質問編集履歴
8
内容編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -46,14 +46,14 @@
|
|
46
46
|
path('accounts/', include('allauth.urls')),
|
47
47
|
]
|
48
48
|
```
|
49
|
-
|
49
|
+
main/urls.py
|
50
50
|
|
51
51
|
|
52
52
|
```python
|
53
53
|
from django.urls import path
|
54
54
|
from . import views
|
55
55
|
|
56
|
-
app_name = '
|
56
|
+
app_name = 'main'
|
57
57
|
urlpatterns = [
|
58
58
|
path('', views.WelcomeView.as_view(), name='welcome'),
|
59
59
|
path('home/', views.HomeView.as_view(), name='home'),
|
7
内容編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -31,7 +31,47 @@
|
|
31
31
|
return context
|
32
32
|
|
33
33
|
```
|
34
|
+
project/urls.py
|
34
35
|
|
36
|
+
|
37
|
+
```python
|
38
|
+
from django.contrib import admin
|
39
|
+
from django.contrib.staticfiles.urls import static
|
40
|
+
from django.urls import path, include
|
41
|
+
|
42
|
+
|
43
|
+
urlpatterns = [
|
44
|
+
path('admin/', admin.site.urls),
|
45
|
+
path('', include('main.urls')),
|
46
|
+
path('accounts/', include('allauth.urls')),
|
47
|
+
]
|
48
|
+
```
|
49
|
+
app/urls.py
|
50
|
+
|
51
|
+
|
52
|
+
```python
|
53
|
+
from django.urls import path
|
54
|
+
from . import views
|
55
|
+
|
56
|
+
app_name = 'app'
|
57
|
+
urlpatterns = [
|
58
|
+
path('', views.WelcomeView.as_view(), name='welcome'),
|
59
|
+
path('home/', views.HomeView.as_view(), name='home'),
|
60
|
+
path('detail/<int:pk>/', views.DetailView.as_view(), name='detail'),
|
61
|
+
path('detail_edit/<int:pk>/', views.DetailEditView.as_view(), name='detail_edit'),
|
62
|
+
path('resister_history/', views.ResisterHistoryView.as_view(), name='resister_history'),
|
63
|
+
path('resister_vegetable/', views.ResisterVegetableView.as_view(), name='resister_vegetable'),
|
64
|
+
path('delete/<int:pk>/', views.DeleteView.as_view(), name='delete'),
|
65
|
+
path('inquiry_login/', views.InquiryLoginView.as_view(), name='inquiry_login'),
|
66
|
+
path('inquiry/', views.InquiryView.as_view(), name='inquiry'),
|
67
|
+
|
68
|
+
path('404/', views.Error404View.as_view(), name='404'),
|
69
|
+
path('403/', views.Error403View.as_view(), name='403'),
|
70
|
+
path('500/', views.Error500View.as_view(), name='500'),
|
71
|
+
|
72
|
+
]
|
73
|
+
```
|
74
|
+
|
35
75
|
detail.html
|
36
76
|
```html
|
37
77
|
{% extends "layout/layout_home.html" %}
|
6
内容編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -106,6 +106,32 @@
|
|
106
106
|
</div>
|
107
107
|
{% endblock %}
|
108
108
|
```
|
109
|
+
### 追記④
|
110
|
+
print()テスト
|
111
|
+
```ここに言語を入力
|
112
|
+
def get(self, request, *args, **kwargs):
|
113
|
+
req = request
|
114
|
+
pk = self.kwargs.get('pk') # urls.pyでpkに格納した値を取り出す。
|
115
|
+
if pk:
|
116
|
+
req.session['history'] = pk # セッションに'history'という名前のキーで保存する。
|
117
|
+
print('test①')
|
118
|
+
return render(req, 'detail.html')
|
119
|
+
|
120
|
+
def get_context_data(self, **kwargs):
|
121
|
+
print('test②')
|
122
|
+
# self.get()
|
123
|
+
context = super().get_context_data(**kwargs)
|
124
|
+
context['pk'] = self.kwargs.get('pk')
|
125
|
+
print('test③')
|
126
|
+
print(context['pk'])
|
127
|
+
return context
|
128
|
+
|
129
|
+
```
|
130
|
+
コンソール
|
131
|
+
```
|
132
|
+
test①
|
133
|
+
```
|
134
|
+
|
109
135
|
### 追記③
|
110
136
|
多くのご協力をいただき、解決はできていないですが、色々参考になる事がありました。
|
111
137
|
|
5
内容編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -109,7 +109,9 @@
|
|
109
109
|
### 追記③
|
110
110
|
多くのご協力をいただき、解決はできていないですが、色々参考になる事がありました。
|
111
111
|
|
112
|
-
下記のコードで動かすと、エラー
|
112
|
+
下記のコードで動かすと、最初はエラーが出ている箇所が、最初のget(self, request, *args, **kwargs):だと思っていましたが、
|
113
|
+
print()を追加して確認すると、
|
114
|
+
|
113
115
|
①
|
114
116
|
②
|
115
117
|
③
|
@@ -117,7 +119,7 @@
|
|
117
119
|
request.session['history']にPKの値が入っている事も確認できます。
|
118
120
|
|
119
121
|
ただ、return super().get(request, *args, **kwargs)のところでエラーが出てしまいます。
|
120
|
-
そこで、シンプルにreturnするものを、request.session['history']にしてもエラーが出てしまいます。
|
122
|
+
そこで、シンプルにreturnするものを、request.session['history']にしようと思ってもエラーが出てしまいます。
|
121
123
|
|
122
124
|
```ここに言語を入力
|
123
125
|
def get(self, request, *args, **kwargs):
|
4
内容編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -106,6 +106,43 @@
|
|
106
106
|
</div>
|
107
107
|
{% endblock %}
|
108
108
|
```
|
109
|
+
### 追記③
|
110
|
+
多くのご協力をいただき、解決はできていないですが、色々参考になる事がありました。
|
111
|
+
|
112
|
+
下記のコードで動かすと、エラーは出ますが、コンソールには、
|
113
|
+
①
|
114
|
+
②
|
115
|
+
③
|
116
|
+
までは表示されます。
|
117
|
+
request.session['history']にPKの値が入っている事も確認できます。
|
118
|
+
|
119
|
+
ただ、return super().get(request, *args, **kwargs)のところでエラーが出てしまいます。
|
120
|
+
そこで、シンプルにreturnするものを、request.session['history']にしてもエラーが出てしまいます。
|
121
|
+
|
122
|
+
```ここに言語を入力
|
123
|
+
def get(self, request, *args, **kwargs):
|
124
|
+
pk = self.kwargs.get('pk') # urls.pyでpkに格納した値を取り出す。
|
125
|
+
print('①')
|
126
|
+
if pk:
|
127
|
+
request.session['history'] = pk # セッションに'history'という名前のキーで保存する。
|
128
|
+
print('②')
|
129
|
+
print('③')
|
130
|
+
return super().get(request, *args, **kwargs)
|
131
|
+
print('finish')
|
132
|
+
|
133
|
+
|
134
|
+
def get_context_data(self, **kwargs):
|
135
|
+
self.get()
|
136
|
+
context = super().get_context_data(**kwargs)
|
137
|
+
return context
|
138
|
+
```
|
139
|
+
エラーコード
|
140
|
+
```ここに言語を入力
|
141
|
+
TypeError at /detail/41/
|
142
|
+
get() missing 1 required positional argument: 'request'
|
143
|
+
```
|
144
|
+
|
145
|
+
|
109
146
|
### 追記②
|
110
147
|
```ここに言語を入力
|
111
148
|
self.check_session(self.request)
|
3
内容編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -31,6 +31,81 @@
|
|
31
31
|
return context
|
32
32
|
|
33
33
|
```
|
34
|
+
|
35
|
+
detail.html
|
36
|
+
```html
|
37
|
+
{% extends "layout/layout_home.html" %}
|
38
|
+
{% load custom_tags %}
|
39
|
+
|
40
|
+
{% block title %}
|
41
|
+
Detail
|
42
|
+
{% endblock %}
|
43
|
+
|
44
|
+
{% block content %}
|
45
|
+
|
46
|
+
<!-- page content -->
|
47
|
+
<div class="right_col" role="main">
|
48
|
+
<div class="">
|
49
|
+
<div class="page-title">
|
50
|
+
<div class="title_left">
|
51
|
+
<h3>登録情報 </h3>
|
52
|
+
</div>
|
53
|
+
</div>
|
54
|
+
<div class="clearfix"></div>
|
55
|
+
<div class="row">
|
56
|
+
<div class="col-lg-6 offset-lg-3">
|
57
|
+
|
58
|
+
<div class="x_panel">
|
59
|
+
<div class="x_title">
|
60
|
+
<h2 style="color: #2B2B2B; font-weight: bold">{{ object.name }} </h2>
|
61
|
+
<h2 style="color: #2B2B2B; font-weight: bold">{% none_to_blank object.type %} </h2>
|
62
|
+
<h2 style="color: #2B2B2B; font-weight: bold">{{ object.name }} </h2>
|
63
|
+
<h2 style="color: #2B2B2B; font-weight: bold">{% none_to_blank object.variety %} </h2>
|
64
|
+
<ul class="nav navbar-right panel_toolbox">
|
65
|
+
<li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
|
66
|
+
|
67
|
+
</li>
|
68
|
+
<li class="dropdown">
|
69
|
+
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"
|
70
|
+
aria-expanded="false"><i class="fa fa-wrench"></i></a>
|
71
|
+
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
72
|
+
<a class="dropdown-item" href="#">Settings 1</a>
|
73
|
+
<a class="dropdown-item" href="#">Settings 2</a>
|
74
|
+
</div>
|
75
|
+
</li>
|
76
|
+
<li><a class="close-link"><i class="fa fa-close"></i></a>
|
77
|
+
</li>
|
78
|
+
</ul>
|
79
|
+
<div class="clearfix"></div>
|
80
|
+
</div>
|
81
|
+
<div class="x_content">
|
82
|
+
|
83
|
+
<p>登録日:{{ object.created_at }} 更新日:{{ object.updated_at }} </p>
|
84
|
+
<div class="x_content">
|
85
|
+
<a href="{% url 'main:detail_edit' object.pk %}">
|
86
|
+
<button type="button"
|
87
|
+
class="btn btn-success btn-m ">編集
|
88
|
+
</button>
|
89
|
+
</a>
|
90
|
+
<a href="{% url 'main:resister_history'%}">
|
91
|
+
<button type="button"
|
92
|
+
class="btn btn-primary btn-m ">収穫履歴を保存
|
93
|
+
</button>
|
94
|
+
</a>
|
95
|
+
<a href="{% url 'main:delete' object.pk %}">
|
96
|
+
<button type="button"
|
97
|
+
class="btn btn-danger btn-m ">削除
|
98
|
+
</button>
|
99
|
+
</a>
|
100
|
+
</div>
|
101
|
+
</div>
|
102
|
+
</div>
|
103
|
+
</div>
|
104
|
+
</div>
|
105
|
+
</div>
|
106
|
+
</div>
|
107
|
+
{% endblock %}
|
108
|
+
```
|
34
109
|
### 追記②
|
35
110
|
```ここに言語を入力
|
36
111
|
self.check_session(self.request)
|
2
追記記入
title
CHANGED
File without changes
|
body
CHANGED
@@ -31,8 +31,17 @@
|
|
31
31
|
return context
|
32
32
|
|
33
33
|
```
|
34
|
+
### 追記②
|
35
|
+
```ここに言語を入力
|
36
|
+
self.check_session(self.request)
|
37
|
+
```
|
38
|
+
とすると、requestは引数として渡っているようですが、別のエラーが発生します。
|
39
|
+
```
|
40
|
+
TypeError at /detail/41/
|
41
|
+
Object of type CustomUser is not JSON serializable
|
42
|
+
```
|
34
43
|
|
35
|
-
### 追記
|
44
|
+
### 追記①
|
36
45
|
以下のサイトの方法を試しましたがうまく動作しませんでした(やはりrequestを引数に渡す必要があります)
|
37
46
|
[Django URLパラメータをセッションに保存してテンプレートで利用する](https://btj0.com/blog/django/session/)
|
38
47
|
|
1
内容編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -32,8 +32,32 @@
|
|
32
32
|
|
33
33
|
```
|
34
34
|
|
35
|
+
### 追記
|
36
|
+
以下のサイトの方法を試しましたがうまく動作しませんでした(やはりrequestを引数に渡す必要があります)
|
37
|
+
[Django URLパラメータをセッションに保存してテンプレートで利用する](https://btj0.com/blog/django/session/)
|
35
38
|
|
39
|
+
```
|
40
|
+
TypeError at /detail/41/
|
41
|
+
get() missing 1 required positional argument: 'request'
|
42
|
+
```
|
36
43
|
|
44
|
+
```python
|
45
|
+
class DetailView(LoginRequiredMixin, generic.DetailView):
|
46
|
+
model = sampleDB
|
47
|
+
template_name = 'detail.html'
|
48
|
+
|
49
|
+
def get(self, request, *args, **kwargs):
|
50
|
+
pk = self.kwargs.get('pk') # urls.pyでpkに格納した値を取り出す。
|
51
|
+
if pk:
|
52
|
+
request.session['history'] = pk # セッションに'history'という名前のキーで保存する。
|
53
|
+
return super().get(request, *args, **kwargs)
|
54
|
+
|
55
|
+
def get_context_data(self, **kwargs):
|
56
|
+
self.get()
|
57
|
+
context = super().get_context_data(**kwargs)
|
58
|
+
return context
|
59
|
+
```
|
60
|
+
|
37
61
|
### 補足情報(FW/ツールのバージョンなど)
|
38
62
|
|
39
63
|
●開発環境
|