Создание объекта задания из класса Job (models.Model) для зарегистрированной компании работает. Когда я сохраняю форму, она передает идентификатор объекта в указанную c компанию.
Проблема в том, что создание объекта с помощью chiltable работает, но не связывает его с указанным c экземпляром компании. Как я могу отнести его к тому же экземпляру, что и класс Job?
Пожалуйста, помогите мне, ребята ..
Model.py
class Job(models.Model):
objects = CompanyProfile()
user = models.ForeignKey(CompanyProfile, on_delete=models.CASCADE)
title = models.CharField(max_length=300)
description = models.TextField()
compensation = models.IntegerField()
last_date = models.DateTimeField(null=True, blank=True)
contact_person = models.CharField(max_length=30)
contact_person_image = models.FileField(upload_to=job_contact_person_path, blank=True)
created_at = models.DateTimeField(default=timezone.now, blank=True)
is_active = models.BooleanField(default=True)
address = models.CharField(max_length=100, null=True)
zip_code = models.CharField(max_length=10, null=True)
city = models.CharField(max_length=30, null=True)
phone_number = models.CharField(max_length=30, null=True)
contact_person_email = models.EmailField(null=True)
class JobFunction(models.Model):
objects = Job()
job = models.ForeignKey(Job, on_delete=models.CASCADE, null=True, related_name='jobfunctions')
name = models.CharField(max_length=60)
class InternType(models.Model):
objects = Job()
job = models.ForeignKey(Job, on_delete=models.CASCADE, null=True, related_name='interntypes')
name = models.CharField(max_length=30)
Forms.py
class JobAddForm(forms.ModelForm):
class Meta:
model = Job
fields = (
'title',
'description',
'compensation',
'contact_person',
'contact_person_image',
'created_at',
'is_active',
'address',
'zip_code',
'phone_number',
'city',
'contact_person_email'
)
labels = {
'description': '',
'contact_person': 'Contactpersoon',
'compensation': 'compensatie',
'title': 'titel',
'is_active': 'Vacature is actief',
'address': 'Adres',
'zip_code': 'Postcode',
'phone_number': 'Telefoonnummer',
'city': 'Stad',
'contact_person_image': 'Foto contact persoon'
}
class JobFunctionForm(forms.ModelForm):
class Meta:
model = JobFunction
fields = (
'name',
)
labels = {
'name': 'Vacature functie',
}
class JobInternTypeForm(forms.ModelForm):
class Meta:
model = InternType
fields = (
'name',
)
labels = {
'name': 'Type stage',
}
Views.py
def company_create_job(request):
user1 = User.objects.get(pk=request.user.id)
company = CompanyProfile.objects.get(user=user1)
add_job_form = JobAddForm(request.POST or None)
add_jobfunction_form = JobFunctionForm(request.POST or None)
add_jobtype_form = JobInternTypeForm(request.POST or None)
if request.method == 'POST':
if add_job_form.is_valid() and add_jobfunction_form.is_valid() and add_jobtype_form.is_valid() :
job = add_job_form.save(commit=False)
job.user = company
job.title = add_job_form.cleaned_data.get('title')
job.description = add_job_form.cleaned_data.get('description')
job.compensation = add_job_form.cleaned_data.get('compensation')
job.contact_person = add_job_form.cleaned_data.get('contact_person')
job.is_active = add_job_form.cleaned_data.get('is_active')
job.address = add_job_form.cleaned_data.get('address')
job.zip_code = add_job_form.cleaned_data.get('zip_code')
job.phone_number = add_job_form.cleaned_data.get('phone_number')
job.city = add_job_form.cleaned_data.get('city')
job.contact_person_email = add_job_form.cleaned_data.get('contact_person_email')
#Job function - Childtable of Job
job.jobfunctions = job
job.jobfunctions.name = add_jobfunction_form.cleaned_data.get('name')
# Job type - Childtable of Job
job.interntypes.job = job
job.interntypes.name = add_jobtype_form.cleaned_data.get('name')
add_jobfunction_form.save()
add_jobtype_form.save()
job.save()
else:
add_job_form = JobAddForm(prefix='UF')
add_jobfunction_form = JobInternTypeForm(prefix='UF')
add_jobtype_form = JobFunctionForm(prefix='UF')
context = {
'user': user1,
'company': company,
'add_job_form': add_job_form,
'add_jobfunction_form': add_jobfunction_form,
'add_jobtype_form': add_jobtype_form,
}
return render(request, 'jobportal/company/create_job.html', context, {
})
job.interntypes.job = job ^ эта строка не сохраняет объект внешнего ключа, связанный с заданием. Имя сохраняется с полем задания, оставляя пустым там, где нет внешнего ключа для модели задания. Как установить модель Job в качестве внешнего ключа этой модели JobFunction.