レポートを作成するときにユーザーが「オンザフライ」で場所を作成できるようにしたいと考えています。可能であれば、以下のモデルを使用してください。Django形式:ManyToManyインライン作成
モデル:
class Report(models.Model):
...
location = forms.ManyToManyField(Location)
class Location(models.Model):
name = forms.CharField(max_length=255)
...
私が探しています行動は、Djangoのフォームセットによって与えられたものに近いです。
実際、私は現時点では、代わりに外部キーの関係を使用し、フォームセットに頼っています。この技術を使用して、django-extra-viewsとdjango-dynamic-formsetを追加することで、ユーザーが追加したい場所の数を選択できるようになりました。実際のセットアップの
ストリップダウンバージョン:
モデル:
class Report(models.Model):
...
class Location(models.Model):
name = forms.CharField(max_length=255)
report = forms.ForeignKey('Report')
形式:
class LocationForm(forms.ModelForm):
class Meta:
model = Location
fields = '__all__'
class LocationFormSet(extra_views.InlineFormSet):
model = TestLocation
form_class = TestLocationForm
ビュー:
class ReportCreateView(extra_views.CreateWithInlinesView):
model = Report
inlines = [LocationFormSet, ]
残念ながら、この設定を使用して、ロケーション重複した場所をたくさん持っている複数のレポートに属することはできません。だから私はManyToManyの関係がより適していると思います。私は中間モデルについて語ったこの質問に関連するいくつかの答えにつきましたが、私はそれを動作させるために自分でどこにでも行くことができませんでした。
私は多くの関係で動作するように自分の設定を調整する方法はありますか?あるいは、レポート作成中にユーザーが「オンザフライ」で場所を作成できるようにするには全く異なるアプローチがありますか?
ありがとうございます!
ベストレスポンス:https://stackoverflow.com/a/21577368/1393774 – Virako