回答編集履歴
2
修正
answer
CHANGED
@@ -3,7 +3,21 @@
|
|
3
3
|
```Python
|
4
4
|
class Tag(models.Model):
|
5
5
|
name = models.CharField(max_length=100)
|
6
|
+
|
6
7
|
class Review(models.Model):
|
7
8
|
# いろいろ
|
8
9
|
tags = models.ManyToManyField(Tag, related_name="re_tags")
|
10
|
+
```######----追記欄----
|
11
|
+
上の`model`をマイグレーションした後、`admin`から`Tag`モデルに、"離乳食持ち込み可"などの評価を追加します。
|
12
|
+
そして、
|
9
|
-
```
|
13
|
+
```Python
|
14
|
+
class CheckForm(forms.Form):
|
15
|
+
choice = [(tag, tag.name) for tag in Tag.objects.all()]
|
16
|
+
select = forms.MultipleChoiceField(
|
17
|
+
choices=choice,
|
18
|
+
widget=forms.CheckboxSelectMultiple()
|
19
|
+
```こんな感じでの`form`を作って、`POST`送信時に選択されたものを`.tags.add(・・, ・・)`で追加する。
|
20
|
+
`form`に自信がないですが...
|
21
|
+
***
|
22
|
+
`ManyToMany`を使うことによって`filter`などが簡単操作できるので`ManyToMany`がいいとは思いますが、確かに簡単にラジオボタンとかチェックボックスに出来ないのは難点ですね。
|
23
|
+
複数選択の評価チェックボックスを作り、選ばれたものをviews.pyで受け取り、追加という流れだとは思いますが。
|
1
修正
answer
CHANGED
@@ -1,1 +1,9 @@
|
|
1
|
-
`Tag`のモデルを作って、レビューモデルと`ManyToManyField`で結べばいいのでは?
|
1
|
+
`Tag`のモデルを作って、レビューモデルと`ManyToManyField`で結べばいいのでは?
|
2
|
+
例えば
|
3
|
+
```Python
|
4
|
+
class Tag(models.Model):
|
5
|
+
name = models.CharField(max_length=100)
|
6
|
+
class Review(models.Model):
|
7
|
+
# いろいろ
|
8
|
+
tags = models.ManyToManyField(Tag, related_name="re_tags")
|
9
|
+
```とかにして、選ばせる。
|