Я пытаюсь реализовать модель таким образом, чтобы пользователь мог иметь несколько представлений, а отправка имела только один объект типа SubmissionData.
В шаблоне пользователь загрузит файл PDF , этот PDF-файл будет проанализирован, некоторая информация, связанная с этим представлением, будет сохранена в SubmissionData, а файл и некоторая основная информация будут связаны с SubmissionData
вот models.py :
class Submission(models.Model):
submission_user = models.ForeignKey('auth.User',
related_name='submissions',
on_delete=models.CASCADE)
submission_file = models.FileField(upload_to='media/')
created_at = models.DateTimeField(auto_now=True)
def __str__(self):
user_submission = str(self.submission_user.username).lower()
user_submission = user_submission + '/' + str(timezone.now())
return user_submission
class Meta:
ordering = ['-created_at']
class SubmissionData(models.Model):
submission_code = models.OneToOneField(Submission,
related_name='data',
on_delete=models.CASCADE)
uuid = models.CharField(max_length=250, null=True)
patiente_name = models.CharField(max_length=250, null=True)
patiente_age = models.PositiveIntegerField(null=True)
patient_gender = models.CharField(max_length=20, null=True)
и на моем views.py :
class SubmissionCreateView(CreateView, LoginRequiredMixin):
form_class = SubmissionForm
template_name = 'submissions/submission_create.html'
success_url = reverse_lazy('submissions:list')
def proccess_submission_data(self):
parser = PDFParser('path-to-pdf').parse()
data_obj = parser.get_result()
submission_data = self.enconde(data_obj)
self.object.save()
submission_data.save()
def enconde(self, data_obj):
submission_data = SubmissionData(submission_code=self.object,
uuid=data_obj.uuid,
patiente_name=data_obj.patiente_name,
patiente_age=data_obj.patiente_age,
patient_gender=data_obj.patient_gender)
return submission_data
def form_valid(self, form):
self.object = form.save(commit=False)
self.object.submission_user = self.request.user
self.proccess_submission_data()
return super().form_valid(form)
По какой-то причине я получаю следующую ошибку:
И ошибка запускается в этих строках:
Кто-нибудь знает, что может вызывать эти ошибки?