字段 'id' 需要一个数字,但得到了 'Saurav'。 /recruiter/ 处的值错误

时间:2021-02-28 03:35:25

标签: django-forms

我是 Django 的新手。我正在尝试填充我之前创建的供管理员使用的 Candidate 表。但是后来的需求发生了变化,我必须让用户填充它,所以我使用了表单。但是我收到此错误,我认为是因为在表 Candidate 中有表单数据未提供的自动 ID 字段。下面是代码。

models.py

从 django.db 导入模型 从 django.utils 导入时区

类候选人(models.Model):

SKILL_CHOICES = (
    ('Java','JAVA'),
    ('Python','PYTHON'),
    ('Full stack','FULL STACK'),
    ('Backend','BACKEND'),
)
GRADE_CHOICES = (
    ('Is1','IS1'),
    ('Is2','IS2'),
    ('IS3','IS3'),
)    
SCREENING_CHOICES = (
    ('pending','PENDING'),
    ('wip','WIP'),
    ('complete','COMPLETE'),
)

SELECTION_CHOICES = (
    ('selected','SELECTED'),
    ('rejected','REJECTED')
)

Candidate_Name = models.CharField(max_length=70)
Skill_Category = models.CharField(max_length=20,choices = SKILL_CHOICES)
Account = models.CharField(max_length = 50)
Grade = models.CharField(max_length=10,choices = GRADE_CHOICES)
Role = models.CharField(max_length=20)
Billing_Date = models.DateField()
OnBoard_Date = models.DateField(default='2021-01-01')
Screening_Phase = models.CharField(max_length=20,choices = SCREENING_CHOICES)
Final_status = models.CharField(max_length = 10, choices = SCREENING_CHOICES,default = 'SELECTED')

def __str__(self):
    return self.Candidate_Name

forms.py

从 django.forms 导入 ModelForm

从 .models 导入候选

class CandidateForm(ModelForm):

class Meta:
    model = Candidate
    fields = '__all__'

views.py

定义招聘人员(请求):

if request.method == 'POST':

    form = CandidateForm(request.POST)
    if form.is_valid():


        name = form.cleaned_data["Candidate_Name"]
        skill = form.cleaned_data["Skill_Category"]
        account = form.cleaned_data["Account"]
        grade = form.cleaned_data["Grade"]
        role = form.cleaned_data["Role"]
        billing_date = form.cleaned_data["Billing_Date"]
        onboard_date = form.cleaned_data["OnBoard_Date"]
        screening_phase = form.cleaned_data["Screening_Phase"]
        final_status = form.cleaned_data["Final_status"]
        candidate = Candidate(name,skill,account,grade,role,billing_date,onboard_date,screening_phase,final_status)  
        candidate.save()
else:

    form = CandidateForm()

return render(request,'recur_app/recruiter.html',{'form': form})

0 个答案:

没有答案