Я пытался выяснить, как работает вся эта проверка, но я ее не понимаю.Я прочитал очень мало примеров по djangoproject, но мне не хватает понятий и того, как все связано.
Если бы вы могли посмотреть на мой код и изменить порядок вещей, а также несколько объяснений, это было бы здорово!
Поэтому я хочу сделать что-то очень простое: иметьВойти только с электронной почтой.Когда пользователь вводит свою электронную почту, я хочу проверить, находится ли она в базе данных, и, если это так, войти в систему.если это не так, я хочу вызвать ошибку «пользователь уже в базе данных» и предложить, чтобы этот человек зашел в / register
Итак, что у меня сейчас есть:
view.py:
def emailLogin(request, backend, extra_context=None, initial={}):
form = EmailLoginForm(initial=initial)
if request.method == 'POST':
form = EmailLoginForm(initial=initial, data=request.POST)
if form.is_valid():
user = form.do_save()
_no_pass_login(request, user) # my custom login
return redirect('/')
else:
print ('not valid')
return render_jinja(request, 'registration/email_login_form.html',
type="register",
form = form
)
forms.py :
class EmailLoginForm(forms.Form):
email = forms.EmailField()
def do_save(self):
try:
u = User.objects.get(email=self.cleaned_data['email'])
except :
raise forms.ValidationError("Already in DB")
return u
Таким образом, весь смысл в том, что мне не хватает понятий - где должна быть ошибка проверкиподнял, вид или форма?куда это поднято?кто ловит это?что нужно импортировать в каждый файл и т. д.
Это не должно быть слишком сложно, но сейчас я совершенно потерян, и у меня нет примеров, которые я мог бы проанализировать и изменить мой код для работы, поэтому я здесь.