Вы можете создать известный пароль (поместить его в settings.py) и использовать его так, как если бы он вводился пользователем. Создайте пользователя с этим и аутентифицируйте пользователя с этим.

аюсь создать веб-сайт, на котором люди только размещают свои адреса электронной почты, и они вошли с помощью файлов 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
        )

и я буду публиковать любые другие отрубленные необходимые счастливо

Ответы на вопрос(3)

Ваш ответ на вопрос