このpostによれば、DjangoアプリケーションでClass Based Views
(CBV)を取得するためにスクリプト全体を変更しようとしています。関数ベースのビューをクラスベースのビューに移行
私はCBVを初めて使用しているので、助けを受けたいと思います。
私の前のスクリプト機能は次のようになります。
@login_required
def IdentityIndividuForm(request) :
success = False
query_Nom_ID = query_Prenom_ID = query_VilleNaissance_ID = None
if 'recherche' in request.GET:
query_Nom_ID = request.GET.get('q1NomID')
query_Prenom_ID = request.GET.get('q1PrenomID')
query_VilleNaissance_ID = request.GET.get('q1VilleNaissanceID')
sort_params = {}
lib.Individu_Recherche.set_if_not_none(sort_params, 'Nom__icontains', query_Nom_ID)
lib.Individu_Recherche.set_if_not_none(sort_params, 'Prenom__icontains', query_Prenom_ID)
lib.Individu_Recherche.set_if_not_none(sort_params, 'VilleNaissance__icontains', query_VilleNaissance_ID)
query_ID_list = Individu.objects.filter(**sort_params)
else :
query_ID_list = Individu.objects.none()
if request.method == 'POST':
form = IndividuFormulaire(request.POST or None, request.FILES or None)
if form.is_valid() :
post = form.save()
return HttpResponseRedirect(reverse('IndividuResume', kwargs={'id': post.id}))
else :
form = IndividuFormulaire()
form.fields['Utilisateur'].initial = request.user.last_name + " " + request.user.first_name
context = {
"form" : form,
"Individu" : Individu,
"query_Nom_ID" : query_Nom_ID,
"query_Prenom_ID" : query_Prenom_ID,
"query_VilleNaissance_ID" : query_VilleNaissance_ID,
"query_ID_list" : query_ID_list,
}
return render(request, 'Identity_Individu_Form.html', context)
私は私の機能にGET
部分とPOST
部分があったが、両方の部分が独立しています。最初のものは私のデータベースを研究することができます。 2つ目は、データベースにオブジェクトを作成することです。
私の質問は、どのようにCBVに基づいた関数でGET部分を上書きできるのですか?
私の新しい機能form_valid(self, form)
はうまく機能しますが、GET
の部分をCBVの部分に移行するために克服しません。
ありがとうございました!
私の質問やスクリプトは多分悪いですが、私のテンプレートには2つの異なるものがあります。人々が存在するかどうかを参照)とCreateForm。 しかし、両方の要素は独立しています。 'get_context_data'は良い関数ではないでしょうか? – Deadpool
残念ながら、私は完全にあなたを理解していない、質問に現在のコードの代わりにロジックを追加することができるかもしれません。 –
私は質問を編集します。しかし、私はちょうど私のデータベースでいくつかの研究を行い、クラスベースのビューで私のテンプレートに結果を表示したい場合、どのようにそれを書くことができますか? – Deadpool