0
この質問はthisに関連しています。私が作成した信号に関連して、私のフォームデータを保存したいと思います:Djangoシグナルとフォームis_valid
モデル:
class PatientInfo(models.Model):
lastname = models.CharField('Last Name', max_length=200)
...
class MedicalHistory(models.Model):
patient = models.OneToOneField(PatientInfo, on_delete=models.CASCADE, primary_key=True)
physician_name = models.CharField('Physician', max_length=200, null=True, blank=True)
...
@receiver(post_save, sender=PatientInfo)
def create_medical_history(sender, **kwargs):
if kwargs.get('created', False):
MedicalHistory.objects.create(patient=kwargs.get('instance'))
ビュー
class MedicalCreateView(CreateView):
template_name = 'patient/medical_create.html'
model = MedicalHistory
form_class = MedicalForm
success_url = '/'
def post(self, request, pk):
form = self.form_class(request.POST)
if form.is_valid():
patiente = form.save(commit=False)
physician_name = form.cleaned_data['physician_name'] # do not delete
patiente.save()
messages.success(request, "%s is added to patient list" % physician_name)
return redirect('index')
else:
print(form.errors)
上記の私のコードは私のMedicalHistoryテーブルに2つのエントリを保存し、患者のフィールドがありますPatient_info.idにリンクされ、もう一方は空ですが、フォームデータが入力されます。
ご協力いただきまして誠にありがとうございます。