質問編集履歴

3

タイトル編集

2019/01/13 06:13

投稿

am120sec
am120sec

スコア14

test CHANGED
@@ -1 +1 @@
1
- inlineformset_factoryでフォームを複製したとき、それぞれで異なるフィルターをかけたい
1
+ Djangoのinlineformset_factoryでフォームを複製したとき、それぞれで異なるフィルターをかけたい
test CHANGED
File without changes

2

文法の修正

2019/01/13 06:13

投稿

am120sec
am120sec

スコア14

test CHANGED
File without changes
test CHANGED
@@ -146,86 +146,86 @@
146
146
 
147
147
 
148
148
 
149
+ class ItemCreateForm(ModelFormWithFormSetMixin, forms.ModelForm):
150
+
151
+ formset_class = TagInlineFormSet
152
+
153
+
154
+
155
+ class Meta:
156
+
157
+ model = Item
158
+
159
+ fields = ('title',)
160
+
161
+
162
+
163
+
164
+
165
+ # Views.py
166
+
167
+
168
+
169
+ class ItemCreate(generic.CreateView):
170
+
171
+ model = Item
172
+
173
+ form_class = ItemCreateForm
174
+
175
+ template_name = 'main_app/item_create.html'
176
+
177
+
178
+
179
+ def get_success_url(self):
180
+
181
+ return reverse('main_app:item_detail', args=(self.object.id,))
182
+
183
+ ```
184
+
185
+
186
+
187
+ ちなみに当初は以下のようなフォームを作っていましたが
188
+
189
+ フォームの表示までは出来てもDBに保存されなかったため、
190
+
191
+ inlineformset_factoryを使用することにしました。
192
+
193
+ ```Django
194
+
149
195
  class ItemCreateForm(forms.ModelForm):
150
196
 
151
- formset_class = TagInlineFormSet
197
+ tag_age = forms.ModelChoiceField(
198
+
152
-
199
+ label='年代',
200
+
153
-
201
+ queryset=FreeTag.objects.filter(elements__name='年代'),
202
+
154
-
203
+ )
204
+
205
+ tag_country = forms.ModelChoiceField(
206
+
207
+ label='制作国',
208
+
209
+ queryset=FreeTag.objects.filter(elements__name='制作国'),
210
+
211
+ )
212
+
213
+ tag_language = forms.ModelChoiceField(
214
+
215
+ label='言語',
216
+
217
+ queryset=FreeTag.objects.filter(elements__name='言語'),
218
+
219
+ )
220
+
221
+
222
+
155
- class Meta:
223
+ # ....
224
+
225
+
156
226
 
157
227
  model = Item
158
228
 
159
229
  fields = ('title',)
160
230
 
161
-
162
-
163
-
164
-
165
- # Views.py
166
-
167
-
168
-
169
- class ItemCreate(generic.CreateView):
170
-
171
- model = Item
172
-
173
- form_class = ItemCreateForm
174
-
175
- template_name = 'main_app/item_create.html'
176
-
177
-
178
-
179
- def get_success_url(self):
180
-
181
- return reverse('main_app:item_detail', args=(self.object.id,))
182
-
183
231
  ```
184
-
185
-
186
-
187
- ちなみに当初は以下のようなフォームを作っていましたが
188
-
189
- フォームの表示までは出来てもDBに保存されなかったため、
190
-
191
- inlineformset_factoryを使用することにしました。
192
-
193
- ```Django
194
-
195
- class ItemCreateForm(forms.ModelForm):
196
-
197
- tag_age = forms.ModelChoiceField(
198
-
199
- label='年代',
200
-
201
- queryset=FreeTag.objects.filter(elements__name='年代'),
202
-
203
- )
204
-
205
- tag_country = forms.ModelChoiceField(
206
-
207
- label='制作国',
208
-
209
- queryset=FreeTag.objects.filter(elements__name='制作国'),
210
-
211
- )
212
-
213
- tag_language = forms.ModelChoiceField(
214
-
215
- label='言語',
216
-
217
- queryset=FreeTag.objects.filter(elements__name='言語'),
218
-
219
- )
220
-
221
-
222
-
223
- # ....
224
-
225
-
226
-
227
- model = Item
228
-
229
- fields = ('title',)
230
-
231
- ```

1

書式の改善

2019/01/12 04:47

投稿

am120sec
am120sec

スコア14

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,9 @@
4
4
 
5
5
  親カテゴリの種類に応じてフィルターをかけたい。
6
6
 
7
- 理想は以下のようなフォームです。
7
+ 理想は以下のようなフォームを作りたいです。
8
+
9
+ どの様なコード、方法を取れば良いでしょうか。
8
10
 
9
11
  ![理想](254bc3864911f8710eaabd555d577af1.jpeg)
10
12