基本的に私が達成しようとしているのは、異なるモデルが同じビューを利用するマルチモデル django アプリです。たとえば、「Car」「Make」「Model」などのモデルがあり、追加、削除、編集など、それぞれに対して同じタスクを実行する単一のビューを作成したいので、作成する必要はありません車の追加、お尻の作成などの個別のビュー。それぞれに ModelForm と Model オブジェクトを作成しました。追加時に空白のオブジェクトを作成し、(フォーム インスタンス arg を使用して) 編集時に事前入力されたフォーム オブジェクトを作成します。オブジェクトは URL パラメータによって決定されます。
私が立ち往生しているのは、これが最善の方法であるかわからないということです。現時点では、if ステートメントを大量に使用して、指定したパラメーターに基づいて目的のオブジェクトまたはフォームを返しています。これは、さまざまなフォームを指定する必要があり、インスタンスが必要かどうかを指定する必要がある場合に少し注意が必要です。これは、これを達成するための最も効率的な方法とはほど遠いようですが。
Django には、ほとんどの反復タスクをカバーする機能があるようですが、ここで欠けている魔法はありますか?
編集 - URL に渡す引数を使用して行っていることの例を次に示します。
def edit_object(request, object, id):
if(object==car):
form = carForm(instance = Car.objects.get(pk=id)
return render(request, 'template.html', {'form':form})