前提・実現したいこと
こちらのページをご覧くださり、ありがとうございます。
タイトルの通り、djangoのcreateviewで、2つのmodelを扱って、2つのモデルのそれぞれの中身をfieldに追加し、一つのページから、2つのモデルをある飼う方法をさがしているのですが、なかなか見当たりません。
現在これをclassbasedviewにて実現しようと考えているのですが、こうしたらいいよっていうのがわかる方はご教授願います。また、classbasedviewじゃできないよっていうことがございましたら、functionbasedviewでどんな風に書いたらいいよっていう例や、参考になるページなど示していただければ、ありがたいです。
まだ、djangoを勉強し始めたばかりで、わかりにくい文章になっているかもしれませんので、必要な情報等ございましたら、遠慮なくお尋ねください。
発生している問題
タイトルのやり方がわからない。
該当のソースコード
python
1models.py 2 3class Model1(models.Model): 4 title = models.CharField(max_length = 50) 5 note = models.TextField() 6 7 8class Model2(models.Model): 9 10 title2 = models.CharField(max_length = 50) 11 name = models.CharField(max_length = 30) 12
python
1 2create.html 3class Create(CreateView): 4 template_name = 'createcomment.html' 5 model = Model1 6 7 def get_context_data(self, **kwargs): 8 context = super(Create, self).get_context_data(**kwargs) 9 context.update({ 10 'list': Model2.objects.all(), 11 12 }) 13 return context 14 15 fields = ('title','note')**←ここにmodel2のtitle2と、nameを入れたい。** 16 success_url = reverse_lazy('list') 17
html
1 2views.py 3{% extends 'base.html'%} 4 5{% block content %} 6 7 8<form method = 'POST' >{% csrf_token %} 9 <p>title:<input type = 'text' name = 'title'></p> 10 <p>note:<input type = 'text' name = 'note'></p> 11この下のものも入力して、Model2にそのデータを入力したい。 12 <p>title2:<input type = 'text' name = 'title2'></p> 13 <p>name:<input type = 'text' name = 'name'></p> 14 15 16 17<input type = 'submit' value = "create"> 18</form> 19{% endblock content%} 20
試したこと
views.pyのfieldsにそのまま、title2や、list.title2などと入力してみたのですが、できませんでした。
補足情報(FW/ツールのバージョンなど)
python3
django3
あなたの回答
tips
プレビュー