Как получить конкретные данные из моделей django?
Я пытаюсь получить запись из модели django, где email=некоторые POST-данные и pass=почтовые данные. вот мой models.py
class candidate(models.Model):
fname=models.CharField("First name ",max_length=20,default="")
lname=models.CharField("Last name ",max_length=20,default="")
email=models.EmailField("Email ",max_length=254,primary_key=True)
password=models.CharField("Password ",max_length=100,default="")
def __str__(self):
return self.fname+" " +self.lname
и в views.py
def login(request):
print("hello login")
if request.method=='POST':
user=request.POST['radioBtn']
print(user)
try:
user=request.POST['radioBtn']
print(user)
if(user=="Candidate"):
print("candidate login")
udetails=candidate.objects.get(email=request.POST['emails'],password=request.POST['passwd'])
except:
messages.error(request,'login failed...')
return render(request,'login.html')
return render(request,'login.html')
здесь я использовал get(email=request.POST['emails'],password=request.POST['passwd']) для получения записей, но он не работает здесь, но мне интересно, я использовал тот же способ для получения записей в другом проекте и он работал...
Есть ли способ получить конкретную запись, сравнивая данные, которые мы получили из почтового запроса, и отобразить только эту запись? Как мы делали в mysql, например select * from table where email=someemail and pass=somepasswd ...?
Убедитесь, что в вашем файле views.py нет опечаток:
udetails=candidate.objects.get(email=request.POST['emails'],password=request.POST['passwd'])
А имена полей в вашем html/models.py также emails
и passwd
, а не email
и password
?
Вы можете проверить входящий запрос следующим образом:
def login(request):
print(request.POST)
# ...