私はDjangoフォームを最初に別のアプリケーションのデータに基づいて作成したいと考えています。私は関数を記述するために、このSO例に従っ:Django:最初にフォームにデータを取り込むためにテーブルからデータを抽出します。
Initial populating on Django Forms
しかし、私は私が欲しいものを得るためにsuccedませんでした。
多くの情報(firstname、...)を持つPerson
という名前のモデルがあり、それぞれの人を区別するために非常に便利なunique number
というモデルがあります。これは私の機能です。
次に、出産法を作成するために、フォーム付きの別のモデルBirthCertificate
があります。私のフォームビューでは、ユーザーはunique number
とDjangoは良い人(難しくない)を検索することができます。最初は私のフォーム(Person.modelとBirthCertificate.modelの間にいくつかの共通フィールドがあります)にデータを取り込みます。
私は2つのステップがあります。
- まず:ユーザが第2
- 人の固有の番号を書き込み:ユーザーが、私はこの情報を提出し、最初のステップは、最初に投入する必要があります
両親の一意の番号を書き込みます共通のフィールド。二番目のステップはかなりうまくいく。
これは私の関数であるが、代はまだ機能していません。
def BirthCertificate_Form_unique_number(request) :
#User fill some fields
query_social_number = request.GET.get('social_number')
query_social_number_father = request.GET.get('social_number_father')
query_social_number_mother = request.GET.get('social_number_mother')
if query_social_number :
query_social_number_list = Person.objects.filter(social_number=query_social_number)
if query_social_number_list:
sc_obj = query_social_number_list[0]
#For example : sc_obj.lastname will extract lastname
# etc ...
else :
query_social_number_list = Person.objects.none()
initial_data = {
'lastname': sc_obj.lastname,
'firstname': sc_obj.firstname,
'birthday': sc_obj.birthday,
'sex' : sc_obj.sex,
'birthcity': sc_obj.birthcity
}
form = BirthCertificateForm(request.POST or None, initial=initial_data)
if form.is_valid() : # Check data
post = form.save()
return HttpResponseRedirect(reverse('BC_treated', kwargs={'id': post.id}))
else:
form = BirthCertificateForm()
parent1 = Person.objects.filter(social_number=query_social_number_father)
parent2 = Person.objects.filter(social_number=query_social_number_mother)
form = BirthCertificateForm(request.POST or None)
form.fields['fk_parent1'].queryset = parent1
form.fields['fk_parent2'].queryset = parent2
context = {
"form" : form,
"person" : person,
}
return render(request, 'BC_form2.html', context)
にはどうすればquery_social_number
についての私の部分を整理、再できますか?
こんにちは、@Deadpool私は私の答えを通過していました。この回答は役に立ちましたか?受け入れるケア? –