Я пытаюсь создать веб-сайт, на котором люди только размещают свои адреса электронной почты, и они вошли с помощью файлов cookie и все.На более позднем этапе я попрошу их предоставить пароль и имена, но имя пользователя не будет использоваться.Я пытаюсь сделать это с Django-Registraition, но я получаю ошибки, и у меня есть несколько проблем.
Сначала, чтобы отключить имена пользователей в качестве функции входа в систему, я поставил вместо имени пользователя str (time ()) - я искал что-то, что будет меняться каждый раз.
Однако, когда я пропускаюаутентификация (в которой я сейчас не нуждаюсь) я получаю сообщение об ошибке:
'RegistrationProfile' object has no attribute 'backend'
Кроме того, я могу оставить аутентификацию, но тогда я не знаю, как аутентифицировать ее только по электронной почте и без пароля.Кроме того, я не знаю, как заставить работать следующую строку:
auth.login(request, ProfileUser)
Если кто-нибудь сможет вытащить меня отсюда, это было бы здорово.Вот некоторый код:
моя форма Класс:
class RegistrationFormCustom(forms.Form):
email = forms.EmailField()
def do_save(self):
new_u = User(username=str(time()),email= self.cleaned_data.get('email'),)
new_u.save()
new_p = Profile.objects.create_profile(new_u)
new_p.save()
return new_p
мой взгляд:
def registerCustom(request, backend, success_url=None, form_class=None,
disallowed_url='registration_disallowed',
template_name='registration/registration_form.html',
extra_context=None,
initial={}):
form = RegistrationFormCustom(initial=initial)
if request.method == 'POST':
form = RegistrationFormCustom(initial=initial, data=request.POST)
if form.is_valid():
profile = form.do_save()
profile = auth.authenticate(username = profile.user.email, password = form.cleaned_data.get('pass1'))
print(profile)
auth.login(request, profile)
return redirect('/')
else:
pass
return render_jinja(request, 'registration/registration_form.html',
type="register",
form = form
)
, и я опубликую любой другой отсканированный необходимый с радостью