Python Django验证错误

Python Django验证错误,python,django,forms,validation,Python,Django,Forms,Validation,我有一个表单,用户可以输入,我想测试验证。用户将输入一个名为Project Name的字段,我想检查数据库中是否已经存在该值。如果有,则发出警告。这是我的密码: views.py if form.is_valid(): team_profile = get_object_or_None(Team, Team_ID=profile.team_id) return render(request,'teams/my_team.html', {'team_profile': team_p

我有一个表单,用户可以输入,我想测试验证。用户将输入一个名为
Project Name
的字段,我想检查数据库中是否已经存在该值。如果有,则发出警告。这是我的密码:

views.py

if form.is_valid():
    team_profile = get_object_or_None(Team, Team_ID=profile.team_id)
    return render(request,'teams/my_team.html', {'team_profile': team_profile})
else:
    return render(request,"teams/team_form.html", {'form':CreateTeamForm()})
def validate_id_exists(value):
    incident = Team.objects.filter(Project_name=value)
    if incident: # check if any object exists
        raise ValidationError('This already exists not exist.')

class Team(models.Model):
    Project_name = models.CharField(max_length=250, validators=[validate_id_exists])
models.py

if form.is_valid():
    team_profile = get_object_or_None(Team, Team_ID=profile.team_id)
    return render(request,'teams/my_team.html', {'team_profile': team_profile})
else:
    return render(request,"teams/team_form.html", {'form':CreateTeamForm()})
def validate_id_exists(value):
    incident = Team.objects.filter(Project_name=value)
    if incident: # check if any object exists
        raise ValidationError('This already exists not exist.')

class Team(models.Model):
    Project_name = models.CharField(max_length=250, validators=[validate_id_exists])
因此,当前,如果用户输入一个已经存在的
项目名称
,将导致表单无效。但是,我不知道如何在屏幕上显示错误消息。目前,如果我提交一个已经存在的
项目名称
,它只会返回到原始形式,根据我所写的内容,它是有意义的。但是,我希望在停留在表单页面时显示错误消息。
有什么想法吗?

您必须使用以下方法在模板中打印非字段错误:

{{ form.non_field_errors }}

您必须使用以下方式打印模板中的非字段错误:

{{ form.non_field_errors }}

您必须返回无效的表单:

//views.py
form = CreateTeamForm(request.POST or None)

if request.method == 'POST':
    if form.is_valid():
        team_profile = get_object_or_None(Team, Team_ID=profile.team_id)
    else:
        print form.errors
return render(request,"teams/team_form.html", {'form': form})
forms.py

def validate_project_name(value):
    incident = Team.objects.filter(Project_name=value)
    if incident: # check if any object exists
        raise ValidationError('This already exists not exist.')
    return value

您必须返回无效的表单:

//views.py
form = CreateTeamForm(request.POST or None)

if request.method == 'POST':
    if form.is_valid():
        team_profile = get_object_or_None(Team, Team_ID=profile.team_id)
    else:
        print form.errors
return render(request,"teams/team_form.html", {'form': form})
forms.py

def validate_project_name(value):
    incident = Team.objects.filter(Project_name=value)
    if incident: # check if any object exists
        raise ValidationError('This already exists not exist.')
    return value

怎么用?我必须在我的视图中添加一些内容吗?是的,将答案中提到的模板标记与表单一起添加到模板中。如何添加?我必须在我的视图中添加一些内容吗?是的,将答案中提到的模板标记与表单一起添加到模板中。