[英]I need save info + User.id or username to database in Django
[英]Django no User with same username in database
我對 Django 特別陌生,仍在學習過程中。 我有這個代碼,它可以讓用戶在字段中輸入任何文本,一旦用戶點擊提交按鈕,它就會抓取他們輸入的文本並在該項目的 django 數據庫中查找它。 它能夠做我想做的事,除非沒有用戶使用該用戶名。 我不知道我會在哪里做一個 if 語句,或者解決這個問題。
views.py
from .forms import RequestPasswordResetForm
from django.contrib.auth.models import User
def request_password(request):
next = request.POST.get('next', '/')
if request.method == "POST":
user = request.POST['passUsername']
users = User.objects.get(username=user)
form = RequestPasswordResetForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'Request has been sent! Admin will be with you shortly.')
return HttpResponseRedirect(next)
您可以在 try catch 塊中處理它,如果數據庫中不存在對象,則get
方法將引發異常(DoesNotExist)。
def request_password(request):
next = request.POST.get('next', '/')
try:
if request.method == "POST":
username = request.POST['passUsername']
user = User.objects.get(username=username)
form = RequestPasswordResetForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'Request has been sent! Admin will be with you shortly.')
return HttpResponseRedirect(next)
except User.DoesNotExist:
messages.error(request, 'Invalid Username')
我會在函數 'exists()' 旁邊使用 if 語句。 它看起來像這樣:
username = request.POST['passUsername']
if (User.objects.exists(username = username):
user = User.objects.get(username = username)
else:
# Throw error
另外,請注意您的變量命名:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.