이 post에 따르면 내 장고 응용 프로그램에서 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
부분을했지만, 두 부분은 독립적이다. 첫 번째는 내 데이터베이스에 대한 조사를 할 수 있습니다. 두 번째는 내 데이터베이스에 개체를 만들 수 있습니다.
제 질문은 : CBV 기반 기능으로 GET 부분을 어떻게 덮어 쓸 수 있습니까?
내 새로운 기능 form_valid(self, form)
이 제대로 작동하지만 GET
부분을 CBV 부분으로 마이그레이션하는 것을 극복하지 못했습니다.
감사합니다.
내 질문이나 스크립트가 좋지 않을 수도 있지만 템플릿에 두 가지 다른 점이 있습니다. 연구 양식 사람들이 존재하는지 아닌지)와 CreateForm. 그러나 두 요소는 모두 독립적입니다. 'get_context_data'는 아마도 좋은 함수가 아닐까요? – Deadpool
불행히도, 전적으로 당신을 이해하지 못합니다, 당신은 질문에 현재 코드 대신 논리를 추가 할 수 있습니다. –
나는 내 질문을 편집 할 것입니다. 그러나 데이터베이스에서 몇 가지 연구를하고 클래스 기반 뷰를 사용하여 템플릿에 결과를 표시하려면 어떻게 작성할 수 있습니까? – Deadpool