Как сохранить данные в пользовательских моделях при использовании парсера резюме в django

Я работаю над сайтом, на котором пользователи будут загружать резюме, а скрипт парсера резюме будет выполняться для получения навыков и сохранения их в профиле пользователя. Мне удалось получить навыки перед сохранением формы, но теперь я не могу сохранить извлеченные навыки. Любой, кто может помочь с этой проблемой, будет высоко оценен. Вот мой файл представлений

А вот мои модели:

# Extending User Model Using a One-To-One Link
class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    avatar = models.ImageField(default='default.jpg', upload_to='profile_images')
    bio = models.TextField()
    resume        = models.FileField('Upload Resumes', upload_to='resumes/', null=True, blank=True)
    name          = models.CharField('Name', max_length=255, null=True, blank=True)
    email         = models.CharField('Email', max_length=255, null=True, blank=True)
    mobile_number = models.CharField('Mobile Number',  max_length=255, null=True, blank=True)
    education     = models.CharField('Education', max_length=255, null=True, blank=True)
    skills        = models.CharField('Skills', max_length=1000, null=True, blank=True)
    company_name  = models.CharField('Company Name', max_length=1000, null=True, blank=True)
    college_name  = models.CharField('College Name', max_length=1000, null=True, blank=True)
    designation   = models.CharField('Designation', max_length=1000, null=True, blank=True)
    experience    = models.CharField('Experience', max_length=1000, null=True, blank=True)
    total_experience  = models.CharField('Total Experience (in Years)', max_length=1000, null=True, blank=True)
    

    def __str__(self):
        return self.user.username

Я пробовал следовать шаг за шагом с pdb, но когда дело доходит до сохранения, я получаю ошибку

Я думаю, что вы хотите сохранить Профиль, а не сам файл резюме. Попробуйте изменить строку resume = file_form.cleaned_data['resume'] на:

profile = Profile.objects.create()
profile.resume = file_form.cleaned_data['resume']

И остальные ваши строки, которые ссылаются на resume., должны быть изменены на profile. также

Ранее вы присваивали файл переменной resume - таким образом, когда вы пытаетесь resume.save(), объект временного файла не имеет метода .save(), поскольку он не является моделью Django. Profile.save() - это то, что вам нужно в данном случае.

Причина вашей ошибки заключается в том, что при циклическом просмотре файлов, представленных в форме резюме, вы пытаетесь сохранить поле резюме (помните, resume = file_form.cleaned_data['resume'] ). Предположительно, вы хотите сохранить объект Profile

Во всех тех строках, где вы добавляете вещи в резюме из вашего разобранного файла резюме, например

 resume.name = data.get('name')

просто замените их на

file_form.instance.name = data.get('name')

и тогда

file_form.save() 

в конце.

Кроме того, похоже, что вам не нужно, чтобы пользователь мог отправлять несколько резюме. Возможно, вам также не нужно перебирать каждый файл в резюме.

Вернуться на верх