我對django超級新,並且存在以下問題。django檢查模型是否存在並將其返回到views.py
我有一些用戶在我的模型「用戶」,它有一個電子郵件和用戶名字段。我在我的forms.py中創建了一個LoginFrom,它只接受一個電子郵件地址並檢查它是否存在於用戶數據庫中。然後我想返回到我的views.py並檢索該模型並使用它。
很簡單,但是,我不能在我的forms.py,因爲它說用戶已經存在這樣做
return email_get
。我可以回到views.py的唯一方法是改變我得到的表單電子郵件。
喜歡的東西,
email_got="[email protected]" return email_got
所以,我怎麼能回到通過保持原來的形式電子郵件的forms.py。 Ps,我只是想手動檢查用戶是否存在於數據庫中。
這裏是我的forms.py
from django import forms
from .models import User
class LoginForm(forms.ModelForm):
class Meta:
model=User
fields= ['email']
def clean_email(self):
email_got = self.cleaned_data.get('email')
if User.objects.filter(email=email_got).exists():
raise forms.ValidationError("Your email already exist")
return email_got
我的views.py
from django.conf import settings
from django.shortcuts import render
from django.core.mail import send_mail #for sending mail
from .forms import SignUpForm, LoginForm
from .models import User
def login(request):
username = None
form=LoginForm(request.POST or None)
if form.is_valid():
new_user = form.save()
username = getattr(new_user, 'username')
context = {
"form": form,
"username":username,
}
return render(request,"login.html",context)
非常感謝您的幫助!
這是你真正的代碼? '如果User.objects.filter(email = emailAt).count()== 1:'會拋出一個錯誤。但是,你又不是在這個代碼所在的地方調用函數。那麼你可以發佈你的真實代碼嗎? – e4c5
@ e4c5多數民衆贊成,我沒有得到任何錯誤,當我嘗試。我的forms.py中唯一缺少的是類SignUpForm。我沒有給出,因爲我會造成不必要的干擾 – user7278236
「你不是在調用這個代碼所在的函數」 – e4c5