我在模型中有这个自定义主键:
class Personal(models.Model):
name = models.CharField(max_length=20,primary_key=True)
email = models.EmailField(blank=True,null=True)
现在我没有得到的是,我如何创建我的视图以便不输入重复的记录?我在网上搜索了这个,但是可以找到任何技术来创建视图。
这是视图的代码
def uregister(request):
errors = []
if request.method == 'POST':
if not request.POST.get('txtName', ''):
errors.append('Enter a Name.')
if not errors:
n = request.POST['txtName']
e = request.POST['txtEmail']
try:
per_job = Personal(name=n, email=e)
per_job.save()
except IntegrityError:
return render_to_response('gharnivas/register.html', {'exists': true}, context_instance=RequestContext(request))
return HttpResponseRedirect('/')
else:
return render_to_response('register.html', {'errors': errors}, context_instance=RequestContext(request))
如何告知用户该名称已存在?
答案 0 :(得分:2)
Catch the inevitable exception保存后,告诉他们。
答案 1 :(得分:0)
使用:
per_job.save(force_insert=True)
答案 2 :(得分:-1)
您正在寻找的是表单和表单验证:
http://docs.djangoproject.com/en/dev/topics/forms/?from=olddocs#customizing-the-form-template
定义PersonalForm类,在表单字段定义或clean *()方法中移动验证检查,然后在模板中显示表单中的错误字段。
用于表单处理的Django书籍链接: