質問編集履歴
5
改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
ValueError: invalid literal for int() with base 10: 'Vlog'
|
11
11
|
```
|
12
12
|
### 該当のソースコード
|
13
|
-
```views
|
13
|
+
```views
|
14
14
|
class BlogList(LoginRequiredMixin, TemplateView):
|
15
15
|
model = Member
|
16
16
|
template_name = 'blog/list.html'
|
@@ -25,7 +25,7 @@
|
|
25
25
|
return context
|
26
26
|
```
|
27
27
|
|
28
|
-
```models
|
28
|
+
```models
|
29
29
|
class Status(models.Model):
|
30
30
|
name = models.CharField(max_length=140, blank=True)
|
31
31
|
|
@@ -56,11 +56,11 @@
|
|
56
56
|
return self.name
|
57
57
|
```
|
58
58
|
### 試したこと
|
59
|
-
```views
|
59
|
+
```views
|
60
60
|
context['all_posts'] = Post.objects.filter(status=member.status.all())
|
61
61
|
```
|
62
62
|
ではこの段階では上手くいくが、
|
63
|
-
```list
|
63
|
+
```list
|
64
64
|
{% for post in all_posts %}
|
65
65
|
{% endfor %}
|
66
66
|
```
|
@@ -69,4 +69,50 @@
|
|
69
69
|
The QuerySet value for an exact lookup must be limited to one result using slicing.
|
70
70
|
```
|
71
71
|
### 補足情報
|
72
|
-
python3.7.2
|
72
|
+
python3.7.2
|
73
|
+
|
74
|
+
### さらなる情報追加
|
75
|
+
```list
|
76
|
+
<!DOCTYPE html>
|
77
|
+
<html>
|
78
|
+
<head>
|
79
|
+
|
80
|
+
</head>
|
81
|
+
<body>
|
82
|
+
{% for member_status in member.status.all %}
|
83
|
+
<p>{{ member_status }}</p>
|
84
|
+
{% endfor %}
|
85
|
+
{% for post in all_posts %}
|
86
|
+
<div><a href="{% url 'blog:index' post.id %}">{{ post.summary }}</a></div>
|
87
|
+
<p>{{ post.status }}</p>
|
88
|
+
{% endfor %}
|
89
|
+
</body>
|
90
|
+
</html>
|
91
|
+
```
|
92
|
+
```views
|
93
|
+
def get_context_data(self, **kwargs):
|
94
|
+
context = super().get_context_data(**kwargs)
|
95
|
+
member = Member.objects.get(user=self.request.user)
|
96
|
+
context['member'] = member
|
97
|
+
|
98
|
+
status_list = ['Vlog', 'Beginner']
|
99
|
+
context['all_posts'] = Post.objects.filter(status=status_list)
|
100
|
+
#print(Post.objects.all().values())
|
101
|
+
return context
|
102
|
+
```
|
103
|
+
上記の場合のエラー画面
|
104
|
+

|
105
|
+
|
106
|
+
```views
|
107
|
+
def get_context_data(self, **kwargs):
|
108
|
+
context = super().get_context_data(**kwargs)
|
109
|
+
member = Member.objects.get(user=self.request.user)
|
110
|
+
context['member'] = member
|
111
|
+
|
112
|
+
#status_list = ['Vlog', 'Beginner']
|
113
|
+
#context['all_posts'] = Post.objects.filter(status=status_list)
|
114
|
+
print(Post.objects.all().values())
|
115
|
+
return context
|
116
|
+
```
|
117
|
+
上記の場合の実行結果
|
118
|
+

|
4
改善
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Django:
|
1
|
+
Django: データベース操作
|
body
CHANGED
File without changes
|
3
改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -57,9 +57,16 @@
|
|
57
57
|
```
|
58
58
|
### 試したこと
|
59
59
|
```views.py
|
60
|
-
objects.filter
|
60
|
+
context['all_posts'] = Post.objects.filter(status=member.status.all())
|
61
|
-
objects.get(status='Vlog')
|
62
61
|
```
|
62
|
+
ではこの段階では上手くいくが、
|
63
|
+
```list.html
|
64
|
+
{% for post in all_posts %}
|
65
|
+
{% endfor %}
|
66
|
+
```
|
63
|
-
|
67
|
+
で以下のエラーが発生してしまう。
|
68
|
+
```error
|
69
|
+
The QuerySet value for an exact lookup must be limited to one result using slicing.
|
70
|
+
```
|
64
71
|
### 補足情報
|
65
72
|
python3.7.2
|
2
改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
### 実現したいこと
|
2
|
-
|
2
|
+
statusがMember(ログイン時のユーザ)が保持しているstatus(複数の可能性あり)である記事を取り出したいと思っています。
|
3
|
+
しかし、下記エラーが発生してしまいます。
|
3
|
-
|
4
|
+
どのようにすれば解決出来るのか教えて頂けると幸いです。
|
5
|
+
可能性のみでもお願いします。
|
4
6
|
よろしくお願いいたします。
|
5
7
|
|
6
8
|
### 発生している問題・エラーメッセージ
|
@@ -10,13 +12,16 @@
|
|
10
12
|
### 該当のソースコード
|
11
13
|
```views.py
|
12
14
|
class BlogList(LoginRequiredMixin, TemplateView):
|
13
|
-
model =
|
15
|
+
model = Member
|
14
16
|
template_name = 'blog/list.html'
|
15
|
-
|
17
|
+
|
16
18
|
def get_context_data(self, **kwargs):
|
17
19
|
context = super().get_context_data(**kwargs)
|
20
|
+
member = Member.objects.get(user=self.request.user)
|
18
|
-
|
21
|
+
context['member'] = member
|
22
|
+
|
19
|
-
context['
|
23
|
+
context['all_posts'] = Post.objects.filter(status=member.status)
|
24
|
+
|
20
25
|
return context
|
21
26
|
```
|
22
27
|
|
@@ -40,6 +45,15 @@
|
|
40
45
|
# 管理者画面でのプレビュー表示
|
41
46
|
def formatted_markdown(self):
|
42
47
|
return markdownify(self.contents)
|
48
|
+
|
49
|
+
class Member(models.Model):
|
50
|
+
name = models.CharField(max_length=140)
|
51
|
+
mail = models.EmailField(max_length=140)
|
52
|
+
status = models.ManyToManyField(Status)
|
53
|
+
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
54
|
+
|
55
|
+
def __str__(self):
|
56
|
+
return self.name
|
43
57
|
```
|
44
58
|
### 試したこと
|
45
59
|
```views.py
|
1
改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,7 +15,6 @@
|
|
15
15
|
|
16
16
|
def get_context_data(self, **kwargs):
|
17
17
|
context = super().get_context_data(**kwargs)
|
18
|
-
user_info = Member.objects.get(user=self.request.user)
|
19
18
|
#context['all_post'] = Post.objects.get(status='Beginner')
|
20
19
|
context['all_post'] = Post.objects.filter(status='Vlog')
|
21
20
|
return context
|