回答編集履歴
1
ポイント 4 点の先頭の数字が li に解釈されてしまっていたので修正しました。
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
ご認識の課題がいくつかあるようですので、できる範囲でひとつひとつお答えさせていただきますね。
|
2
2
|
|
3
|
-
1
|
3
|
+
1) エラー
|
4
4
|
|
5
5
|
```text
|
6
6
|
django.urls.exceptions.NoReverseMatch: Reverse for 'good' with arguments '('',)'
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
このエラーは、変数 `question` が存在しないために `{% url 'board:good' question.id %}` の行で発生しているようです。最後の引数は `question.id` ではなく `post.id` ではないでしょうか。
|
10
10
|
|
11
|
-
2
|
11
|
+
2) `good` の `post` へのひもづけ
|
12
12
|
|
13
13
|
1 のポイントを直すと、いいねフォームの送信時に関数 `good()` に `post.pk` (= `pk` )が渡されるはずなので、それで解決となるのではないかと思います。ただし `good()` は例えば次のようにした方がよい気がします(細かな説明は割愛しますが、コードをご覧いただくと自明かと思いますので、読み取ってください)。
|
14
14
|
|
@@ -27,7 +27,7 @@
|
|
27
27
|
|
28
28
|
(蛇足ですが、個人的には `Good` から `Post` を参照する `ForeignKey` に `good` という名前をつけるといろいろと混乱しそうなので、素直に `post` 等の名前に方がよいかな、という気がします)
|
29
29
|
|
30
|
-
3
|
30
|
+
3) その他
|
31
31
|
|
32
32
|
余談です。 `DateTimeField` で `default=timezone.now` とするのはあまりよくないので、代わりに `auto_now` を使う方がよいかと思います。
|
33
33
|
|
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
- [python - Django datetime issues (default=datetime.now()) - Stack Overflow](https://stackoverflow.com/questions/2771676/django-datetime-issues-default-datetime-now)
|
42
42
|
|
43
|
-
4
|
43
|
+
4) URL 以外での外部キーひもづけ
|
44
44
|
|
45
45
|
> urlに情報が無い状態でPostのプライマリーキーを特定して紐つけることがdjangoで果たしてかのうなのでしょうか。
|
46
46
|
|