Я пытаюсь создать форму профиля профиля после регистрации, а мои коды ниже. Он уже работает только для небольшой проблемы, то есть если поле name
модели Profile
соответствует одному в базе данных , django выводит сообщение об ошибке column slug is not unique
. Я вижу, что поле пули сталкивается с другим, как я буду редактировать приведенные ниже коды, чтобы поднять сообщение об ошибке проверки, если представленное имя аналогично одному в 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'),]
Благодаря
Спасибо за понимание, он работал идеально. Но что, если я хочу убедиться, что имена уникальны, поэтому возникает сообщение об ошибке проверки, в котором «Имя уже существует». Поскольку документ говорит, что is_valid() обеспечивает метку поля с полем unique = true, я попытался поместить уже используемое имя, делая его уникальным в модели, но оно вызывает «... View возвращает none» – Bolaji
Если вы хотите, чтобы имена были уникальными, вы должны указать 'unique = True' в определении поля модели. – solarissmoke