【发布时间】:2023-03-11 17:30:01
【问题描述】:
我的 if 语句有问题,因为它总是返回 True。
我有一个表单,用户可以在其中更改他的个人资料信息。现在我想在他尝试输入一个已经存在的电子邮件地址时显示错误消息,而且当他没有更改他当前的电子邮件地址但他更改了他的名字时,例如,我希望只更改名称。我使用的代码是:
def profil_update(request, slug=None):
instance = get_object_or_404(Guest, slug=slug)
form = UpdateGuestProfileForm(request.POST or None, request.FILES or None, instance=instance)
if form.is_valid():
print (str(request.POST['email'] == instance.email))
if not request.POST['email'] == instance.email and Guest.objects.filter(email = request.POST['email']).exists():
messages.error(request, 'That email address is already taken.', extra_tags='email_exists')
else:
instance = form.save(commit = False)
instance.save()
messages.success(request, "Success", extra_tags='profile_updated')
return HttpResponseRedirect(instance.get_absolute_url())
context = {
"guest": instance,
"form": form
}
return render(request, "base_profile_guest.html", context)
所以,我认为问题在于“request.POST['email'] == instance.get_email()”始终为真。我尝试了一切,它总是正确的。即使电子邮件地址不相等,它也始终是正确的。
【问题讨论】:
标签: python django database forms if-statement