Django에서 모델 formset을 사용하려고합니다. 그러나 내 모델에는 정보를 저장하는 사람을 추적하는 데 도움이되는 request.user 양식을 사용하려는 외래 키가 있습니다. 이 오류가 발생합니다.
@jobseeker_required
def add_skills(request):
template_name = 'jobseeker/addskill.html'
heading_message = 'Formset Demo'
SkillFormSet = modelformset_factory(JobSeekerSkills, fields=('skill', 'level',))
form = SkillFormSet()
if request.method == 'POST':
form = SkillFormSet(request.POST)
a = form.save(commit=False)
a.jobseeker = request.user.id
a.save()
return render(request, template_name, {'form': form})
class JobSeekerSkills(models.Model):
LEVEL = (
('Beginner', 'Beginner' ),
('Intermediary', 'Intermediary'),
('Advance', 'Advance'),
)
jobseeker = models.ForeignKey(User, on_delete=models.CASCADE)
skill = models.CharField(max_length=255)
level = models.CharField(max_length=25, blank=True, null=True, choices=LEVEL, default='Beginer')
updated_at = models.DateTimeField(auto_now=True)
created_at = models.DateTimeField(auto_now_add=True)
modelformset_factory
formset 유형을 반환하므로 SkillFormSet
양식이 아닌 formset 유형입니다. 인스턴스화하면 formset 인스턴스가 반환됩니다. 또한 단일 양식이 아닌 양식 인스턴스를 formset.save
반환합니다. list
이것이 오류의 원인입니다.
목록을 반복하고 속성을 추가해야합니다.
formset = SkillFormSet(request.POST)
forms = formset.save(commit=False)
for form in forms:
form.jobseeker = request.user.id
form.save()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다