【发布时间】:2016-06-16 16:38:02
【问题描述】:
我正在尝试在注册后构建一个创建配置文件表单,我的代码如下。它已经只为一个小问题工作,也就是说,如果Profile 模型的name 字段与数据库中的一个匹配,django 带来错误消息column slug is not unique。我看到 slug 字段与另一个字段发生冲突,如果提交的名称与 db 中的名称相似,我将如何编辑以下代码以引发验证错误消息?
models.py
from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
name= models.CharField(max_length=10)
description=models.TextField()
slug=models.SlugField(unique=True)
user = models.OneToOneField(User, blank=True, null=True)
def __str__(self):
return self.name
views.py
def create_profile(request):
form_class = ProfileForm
if request.method == 'POST':
form = form_class(request.POST)
if form.is_valid():
profile = form.save(commit=False)
profile.user = request.user
profile.slug = slugify(profile.name)
profile.save()
slug = slugify(profile.name)
return redirect('profile_details', slug=profile.slug)
else:
form = form_class()
return render(request, 'profile/create_profile.html', {'form': form,})
urls.py
urlpatterns=[url(r'^accounts/create_profile/$',views.create_profile,name='registration_create_profile'),]
谢谢
【问题讨论】: