djangoのフォームセットを使い、動的に追加できるフォームを作成しました。
model.py
python
1class Post(models.Model): 2 title = models.CharField('タイトル', max_length=200) 3 text = models.TextField('本文') 4 date = models.DateTimeField('日付', default=timezone.now) 5 6 def __str__(self): 7 return self.title 8 9 10class SubPost(models.Model): 11 name = models.CharField('名前', max_length=255) 12 text = models.CharField('テキスト', max_length=255) 13 target = models.ForeignKey(Post, verbose_name='紐づく投稿',blank=True, null=True,on_delete=models.SET_NULL)
forms.py
python
1class PostCreateForm(forms.ModelForm): 2 3 def __init__(self, *args, **kwargs): 4 super().__init__(*args, **kwargs) 5 for field in self.fields.values(): 6 field.widget.attrs['class'] = 'form-control' 7 8 class Meta: 9 model = Post 10 fields = '__all__' 11 12FileFormset = forms.inlineformset_factory( 13 Post, SubPost, fields='__all__', 14 extra=1, can_delete=False 15)
上記で入力したPostテーブルのデータは、以下の要領でテンプレートに渡す事ができます。
python
1class PostDetail(DetailView): 2 template_name = 'app/post_detail.html' 3 model = Post
post_detail.html
python
1{{ post.title }} 2{{ post.text }} 3{{ post.date }}
しかし、このpostに紐付いているSubPostテーブルのデータを取り出す方法がわかりません。
SubPostテーブルはデータが1つの場合もあれば3つの場合もあります。
どのような方法でデータを取り出せば良いでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/14 22:01