0
我試圖在註冊後創建一個創建配置文件表單並且我的代碼位於below.Its已經只適用於輕微問題,即如果模型的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'),]
感謝
感謝您的洞察力,它的工作完美。但是如果我想確保名稱是唯一的,那麼它會引發一個驗證錯誤消息'Name already exists'。由於文檔說is_valid()確保字段標籤的unique = true字段,所以我試着把一個已經存在的使用的名稱雖然使它在模型中是唯一的,但它會顯示'... View returns none' – Bolaji
如果您希望名稱是唯一的,那麼您應該在模型字段定義中指定'unique = True'。 – solarissmoke