У меня есть простая модель профиля, связанная с моделью пользователя Djang, которая хранит псевдоним.
У псевдонима есть уникальное ограничение в модели.
Чтобы обновить псевдоним, я создал модель формы, но не могу понять, как исключить уникальное ограничение, когда пользователь просто нажимает sh кнопку отправки без изменения псевдонима. Форма вызывает ошибку из-за уникального ограничения.
Вот определение модели и формы с частью представления, которая обрабатывает форму:
models.py
class Profile(models.Model):
user = models.OneToOneField(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE
)
alias = models.CharField(
"Alias",
max_length=50,
unique=True,
null=True
)
forms.py
class ProfileForm(ModelForm):
class Meta:
model = Profile
fields = ['alias', ]
и views.py
def membership(request):
if request.method != 'POST':
profile = Profile.objects.get(user=request.user)
form = ProfileForm(initial={'alias': profile.alias, 'user': request.user})
elif request.POST.get('profile_update', None) == 'profile_update':
form = ProfileForm(request.POST)
if form.is_valid():
form.save()