У объекта "JobPost" нет атрибута 'job_type'

У меня есть simple view для создания пользовательских заданий и публикации их на job_portal, но я получаю нижеупомянутую ошибку, я работаю с полями многие-ко-многим и просмотрел документацию, set метод не работает, похоже, я выложил трассировку, но она указывает на странную ошибку, иностранное, которое он упоминает, уже установлено в null, заранее спасибо

def create_job(request):
    company_ = Company.objects.values_list('name', flat=True)

    if request.method == 'POST':
        # getting company by name for reference

        job_title = request.POST['job_title']
        company_name = request.POST['company_name']
        company = get_object_or_404(Company, name__iexact=company_name)
        address = request.POST.get('street_addr')
        city = request.POST['city']
        state = request.POST['state']
        country = request.POST['country']
        zip_ = request.POST.get('zip_code')
        skill_names = request.POST.getlist('skill_name')
        start_salary = request.POST.get('salary_start')
        end_salary = request.POST.get('salary_end')

        # create job skills if not already present inside DB
        print(skill_names)
        skill_list = []
        for skill in skill_names:
            skill_nam, created = Skillset.objects.get_or_create(skill_name__iexact=skill,defaults={
                'skill_name' : skill
            })
            skill_list.append(skill_nam)


        job_loc = JobLocation(address=address, city=city,
                              state=state, country=country, zip_code=zip_)
        job_loc.save()
        job_descrip = request.POST['job_descrip']

        job_skill_ = request.POST.getlist('job_skill_level')

        job_pst = JobPost(title=job_title, 
                          cmpny_name=company, job_description=job_descrip, salary_start=start_salary,salary_end=end_salary)

        job_pst.job_posters.set(request.user) <--- i am getting error here 
        job_pst.save()

        #skill_list has skill names
        job_skill_set = []
        for job_skill_name, job_level in zip(skill_list, job_skill_):
            skil_set = Skillset.objects.filter(skill_name=job_skill_name)
            job_skillset = Job_Skillset(job_post=job_pst, skill_level=job_level)
            job_skillset.skill.set(skil_set)
            job_skill_set.append(job_skillset)

        Job_Skillset.objects.bulk_create(job_skill_set)
        messages.add_message(request,messages.SUCCESS,'Job post successfully submitted!')
        return redirect('/dashboard/')
    return render(request, 'company/company_entry.html', context={
        'contxt': 'job_contxt',
        'company': company_,
        # 'skills_req': job_skill,

    })

Trace

Traceback (most recent call last):
  File "C:\Users\atifs\Documents\job_portal\jobportal-env\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\atifs\Documents\job_portal\jobportal-env\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\atifs\Documents\job_portal\jobportal\job_management\views.py", line 60, in create_job
    job_pst.job_posters.set(request.user)
  File "C:\Users\atifs\Documents\job_portal\jobportal-env\lib\site-packages\django\db\models\fields\related_descriptors.py", line 536, in __get__
    return self.related_manager_cls(instance)
  File "C:\Users\atifs\Documents\job_portal\jobportal-env\lib\site-packages\django\db\models\fields\related_descriptors.py", line 851, in __init__
    raise ValueError('"%r" needs to have a value for field "%s" before '
  File "C:\Users\atifs\Documents\job_portal\jobportal-env\lib\site-packages\django\db\models\base.py", line 521, in __repr__
    return '<%s: %s>' % (self.__class__.__name__, self)
  File "C:\Users\atifs\Documents\job_portal\jobportal\job_management\models.py", line 24, in __str__
    return str(self.job_type)

Exception Type: AttributeError at /create_job/
Exception Value: 'JobPost' object has no attribute 'job_type'

Ваша ошибка находится здесь:

  File "C:\Users\atifs\Documents\job_portal\jobportal\job_management\models.py", line 24, in __str__
    return str(self.job_type)

Итак, я полагаю, что в модели JobPost есть метод def __str__(), который вы переопределяете, и в нем есть ошибка в использовании несуществующего атрибута под названием job_type. Сначала посмотрите на этот метод.

Предупреждение о стиле моего собственного кода: используйте black для автоформатирования вашего кода, он будет выглядеть гораздо более читабельным! 🙌

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