Вопросы с тегами [django-authentication]

1

голосов
0

ответ
92

Просмотры

Джанго аутентификации всегда возвращают None

Найдено много вопросов по этому поводу, однако, не смог найти чего-л помогает мне. Settings.py содержит Authentication Backend: AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend',) И аутентификации пользовательской модели: AUTH_USER_MODEL = 'users.User' модель User наследуется от класса AbstractUser: Класс пользователя (AbstractUser): А потом 3 типа пользователей наследуют от пользователя. Я зарегистрированный клиент: класс клиент (пользователь, models.Model): состояние = models.CharField (max_length = 1, по умолчанию = 'C', редактируемого = False) Когда я активировать пользователь по ссылке активации все в порядке. Клиент проверки подлинности пользователя. Однако, когда я просто пытаюсь войти с помощью логина и пароля Аутентификация всегда возвращать None: класс LoginView (APIView): Защиту пост (я, запрос): QS = User.objects.filter (Q (электронная почта = request.data.get ( 'пользователь «)) | Q (телефон = request.data. получить ( 'пользователь'))), если qs.exists ():. имя пользователя = qs.first () имя пользователя пароль = request.data.get ( 'пароль') пользователя = аутентификации (имя пользователя = имя пользователя, пароль = пароль), если пользователь Этого нет: Логин (запрос, пользователь) возвращает ответ (CMD (user.id), статус = status.HTTP_200_OK) возвращает ответ ({ 'ошибка': 'Неверный Логин / пароль'}, статус = status.HTTP_400_BAD_REQUEST) I «ве регистрируемые в достаточном количестве, которые возвращали желательные клиента, а также имя пользователя и пароль в порядке, но не аутентифицировать возвращает None. Я думаю, что, может быть, проблема заключается в том, что клиент не зарегистрирован должным образом. Это форма SignUp: класс ClientSignupForm (forms.ModelForm): класс Meta: модель = Client исключают = [ 'имя пользователя', '
1

голосов
0

ответ
310

Просмотры

Использование Django учетных данных для входа в External API

Я строю приложение, которое делает определенные пользователем API вызовов на внешний REST API, который использует базовую аутентификацию Base64 в заголовке. Я жёстко мой для целей тестирования, но готовлюсь к развертыванию и потребуется каждый пользователь сделать свои собственные звонки, используя свои собственные учетные данные. Моя первая мысль была взять user.username и user.password поля и сделать простое кодирование Base64 на них, чтобы перейти в API. Однако, Django не хранит пароль в виде простого текста (по понятным причинам), так что это может быть и речи. Есть ли способ, чтобы войти в этот внешний API с помощью вошедшей в учетных данных пользователя? Может быть, маркер или печенье какой-то? Заранее спасибо!
dqharris
1

голосов
1

ответ
118

Просмотры

Использование настраиваемого пользователя Пароля Validation от настройки игнорируются при регистрации

В Django я создал настраиваемый пользователем. Мои вопросы, что валидаторы по умолчанию не работает, любой пароль принят. Я ожидал, что пароль по умолчанию валидаторы в будут работать, потому что я наследование по умолчанию clases модели / Form. В настройках Django у меня есть: AUTH_PASSWORD_VALIDATORS = [{ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator'}, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 'OPTIONS': { 'min_length': 12,}}, { 'ИМЯ': 'django.contrib.auth.password_validation.CommonPasswordValidator',}, { 'ИМЯ': 'django.contrib.auth.password_validation.NumericPasswordValidator',},
J Mo
1

голосов
0

ответ
27

Просмотры

Джанго - Администратор Войти страницу также вошли в аутентификацию пользователя

После того, как я войти в админ страницу, мой сайт также вошли в систему с помощью суперпользователя. И когда я вошел из него также вошли из администратора. Пожалуйста, помогите мне.
Sivakumar R
1

голосов
1

ответ
39

Просмотры

AUTH_USER_MODEL относится к модели «base.User», который не был установлен для пользовательского Идент бэкэндом

Я пытаюсь настроить аутентификации бэкенд то время как индивидуальные модели Идента но держать перед этой ошибкой, потому что я использую функцию get_user_model (). django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL относится к модели 'base.User', который не был установлен INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', ' django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'base.apps.BaseConfig', 'core.apps.AccountsConfig', 'system.apps.SystemConfig'] пользовательских Backend : класс UserBackend (объект): защиту аутентификации (я, запрос, имя пользователя = None, пароль = None, ** kwargs): usermodel = попытка пользователя: USR = usermodel.objects.
Ebrahim Karimi
1

голосов
0

ответ
11

Просмотры

Джанго регистрация: Предотвращение вошедших в (аутентификации) от доступа к результатам регистрации страницы на страницу регистрации отказана для всех пользователей

Привет всем, Я в настоящее время использую Django-регистрацию-Redux для Джанго проекта В моей попытке предотвратить autenticated доступа пользователя Регистрация страницы и страницу Входа, мне нужно было сделать несколько изменений в views.py, обслуживающих эти 2 страниц. Я если self.request.user.is_authenticated: обратный редирект ( «mainhomepage») в обеих регистрах и авторизации зрения, как это предлагается в этой связи, ниже которого я отправил в последнем предупреждении уже аутентификацию пользователей от доступа к странице регистра Решения при условии, что работало, но он также предотвращает не-вошедшего пользователя от доступа к странице регистрации Здесь есть views.py для регистра страницы класса RegistrationView (_RequestPassingFormView): «» „«disallowed_url = "registration_disallowed» Базовый класс для видов регистрации пользователей.“ форма) success_url = self.get_success_url (запрос, new_user) # success_url может быть простой строкой или кортеж обеспечивая # полный набор аргумент переадрессации (). Попытка распаковать его # говорит нам что это. попробуйте: до, арг, kwargs = success_url вернуться редирект (к, * аргументы, ** kwargs) кроме ValueError: возвращение редиректа (success_url) Защиты registration_allowed (я, запрос): ""»Override это для того, чтобы отключить регистрацию / пользователя, либо глобально или на основе каждого запроса «» «возвращающая Защите регистра (я, запрос, форма):„.“» Реализация пользовательской регистрации логики здесь доступ как к просьбе и полной cleaned_data регистрационной формы можно найти здесь ""» поднять NotImplementedError Как вы можете видеть: я добавил, если self.request.user.is_authenticated: обратный редирект ( «mainhomepage»), так что только идентифицированные пользователи могут быть перенаправлены на mainhomepage URL Однако проверку подлинности и не autheticated автоматически направляются на эту страницу Пожалуйста, что еще я могу сделать, чтобы решить эту проблему. проверку подлинности и не прошедших проверку подлинности, перенаправляются на этой странице. В то же время, если заявление только сказал, что авторизованный пользователь должен быть перенаправлен. Короче говоря, я больше не могу получить доступ к странице регистра еще раз, когда я зарегистрирован, потому что независимо ом журнал в состоянии, пользователь перенаправляется на главную страницу. Тем самым делая это невозможно сделать новую регистрацию на странице ... ЛЮБАЯ ПОМОЩЬ ПОЖАЛУЙСТА ?? ), Так что только идентифицированные пользователи могут быть перенаправлены на mainhomepage URL Однако проверка подлинности и не autheticated автоматически перенаправляется на эту страницу, пожалуйста, что еще можно сделать, чтобы решить эту проблему. проверку подлинности и не прошедших проверку подлинности, перенаправляются на этой странице. В то же время, если заявление только сказал, что авторизованный пользователь должен быть перенаправлен. Короче говоря, я больше не могу получить доступ к странице регистра еще раз, когда я зарегистрирован, потому что независимо ом журнал в состоянии, пользователь перенаправляется на главную страницу. Тем самым делая это невозможно сделать новую регистрацию на странице ... ЛЮБАЯ ПОМОЩЬ ПОЖАЛУЙСТА ?? ), Так что только идентифицированные пользователи могут быть перенаправлены на mainhomepage URL Однако проверка подлинности и не autheticated автоматически перенаправляется на эту страницу, пожалуйста, что еще можно сделать, чтобы решить эту проблему. проверку подлинности и не прошедших проверку подлинности, перенаправляются на этой странице. В то же время, если заявление только сказал, что авторизованный пользователь должен быть перенаправлен. Короче говоря, я больше не могу получить доступ к странице регистра еще раз, когда я зарегистрирован, потому что независимо ом журнал в состоянии, пользователь перенаправляется на главную страницу. Тем самым делая это невозможно сделать новую регистрацию на странице ... ЛЮБАЯ ПОМОЩЬ ПОЖАЛУЙСТА ?? проверку подлинности и не прошедших проверку подлинности, перенаправляются на этой странице. В то же время, если заявление только сказал, что авторизованный пользователь должен быть перенаправлен. Короче говоря, я больше не могу получить доступ к странице регистра еще раз, когда я зарегистрирован, потому что независимо ом журнал в состоянии, пользователь перенаправляется на главную страницу. Тем самым делая это невозможно сделать новую регистрацию на странице ... ЛЮБАЯ ПОМОЩЬ ПОЖАЛУЙСТА ?? проверку подлинности и не прошедших проверку подлинности, перенаправляются на этой странице. В то же время, если заявление только сказал, что авторизованный пользователь должен быть перенаправлен. Короче говоря, я больше не могу получить доступ к странице регистра еще раз, когда я зарегистрирован, потому что независимо ом журнал в состоянии, пользователь перенаправляется на главную страницу. Тем самым делая это невозможно сделать новую регистрацию на странице ... ЛЮБАЯ ПОМОЩЬ ПОЖАЛУЙСТА ??
ray
1

голосов
2

ответ
791

Просмотры

Джанго auth_views.login и переадресовывает

Я не мог понять, почему после входа в систему с адреса: HTTP: // локальный / ан / счета / логин / следующий = / EN / тест / Я получаю refirected к HTTP // локальный / счета / профиль / Так я побежал искать в Джанго файлы и обнаружили, что этот адрес LOGIN_REDIRECT_URL по умолчанию для Джанго. То, что я не понимаю, почему он перенаправляется туда. Я предположил, что почтовый адрес моей формы входа в системе должен быть: / счет / Войти / следующий = / о / тест / вместо / счета / логина / Я написал его в шаблон, и она работала. Но так как перенаправление URL динамически изменяется, как я могу сделать это для входа почтовых форм изменения адреса динамически тоже? есть ли templatetag для этого или что-то? Алан
Odif Yltsaeb
1

голосов
1

ответ
274

Просмотры

Субдомен не включены в «? Следующему =» для Django AUTH LOGIN?

У меня есть логин на нужную страницу: http://site1.example.com/widget/52312 Если я по электронной почте кто-то ссылку на них, чтобы нажать на, они присылают на приглашение входа. Но после того, как они войти в систему, они в конечном итоге будет http://example.com/widget/52312. Как вы держите субдомен в месте сохранившегося, когда пользователь получает запрос через процесс входа в систему? Примечание: «site1» специфично для зарегистрированного пользователя и не установлены для всей машины в Apache. Каждый пользователь имеет свой собственный поддомен, но ссылка они нажимают на DO включает их конкретные субдомна.
MikeN
1

голосов
1

ответ
212

Просмотры

django-socialregistration for facebook keeps asking for module facebookapps

Я пытаюсь использовать Django-socialregistration Джанго-приложение, чтобы обеспечить проверку подлинности для моего сайта через Facebook. Я последовал за руководство по установке и установил зависимости: $ желток -l | Grep "oauth2 \ | питон-OpenID \ | facebook-SDK \ | Джанго-socialregistration" Джанго-socialregistration - 0.5.4 - активный facebook-SDK - 0.3.0 - активное развитие (/home/***/.virtualenvs/* ** / SRC / facebooksdk) oauth2 - 1.5.211 - активный питона-OpenID - 2.2.5 - активный settings.py # ... FACEBOOK_APP_ID = '*******' FACEBOOK_SECRET_KEY = «****** ** 'FACEBOOK_REQUEST_PERMISSIONS = '********' INSTALLED_APPS = (# ... 'django.contrib.sites', 'socialregistration', 'socialregistration.contrib.facebook') AUTHENTICATION_BACKENDS = (' django.contrib. auth.backends. ModelBackend»,„socialregistration.contrib.facebook.auth.FacebookAuth“) Но ... Когда я бегу manage.py SyncDB или manage.py runserver я получаю следующее сообщение об ошибке: Ошибка: Нет модуля по имени facebookapps.utils Но нет ссылка на facebookapps в любой части обычного кода. Даже Джанго-socialregistration не обладает какой-либо ссылки, от того, что я мог бы проверить. Странным является settings.pyc. Когда я вычленить информацию facebookapps: $ Grep -R "facebookapps". Двоичный файл ./settings.pyc соответствует Я уже удалил этот файл снова и снова, но он продолжает генерироваться с этой ссылкой. Я использую Django 1.4. Utils Но нет никаких ссылок на facebookapps в любой части обычного кода. Даже Джанго-socialregistration не обладает какой-либо ссылки, от того, что я мог бы проверить. Странным является settings.pyc. Когда я вычленить информацию facebookapps: $ Grep -R "facebookapps". Двоичный файл ./settings.pyc соответствует Я уже удалил этот файл снова и снова, но он продолжает генерироваться с этой ссылкой. Я использую Django 1.4. Utils Но нет никаких ссылок на facebookapps в любой части обычного кода. Даже Джанго-socialregistration не обладает какой-либо ссылки, от того, что я мог бы проверить. Странным является settings.pyc. Когда я вычленить информацию facebookapps: $ Grep -R "facebookapps". Двоичный файл ./settings.pyc соответствует Я уже удалил этот файл снова и снова, но он продолжает генерироваться с этой ссылкой. Я использую Django 1.4.
borges
1

голосов
1

ответ
858

Просмотры

Django администратора - Email имя пользователя и пароль при создании пользователя

Я использую Django-1.4.3 и суперпользователь может создавать пользователей и назначать пароль для них. Здесь я использую Джанго-Email-как-имя пользователя, чтобы дать возможность пользователям войти в их адрес электронной почты в качестве имени пользователя. Когда суперпользователь добавляет новый пользователь, недавно добавленный пользователь должен быть уведомлен по электронной почте со своим именем и паролем. Я могу отправить по электронной почте после создания пользователя с использованием post_save сигнала. Но я не мог получить пароль, он будет зашифрован и сохранен. Я хочу, чтобы отправить пользователю, необработанный пароль. Как я могу добиться этого?
arulmr
1

голосов
1

ответ
3.2k

Просмотры

FieldError: Local field 'password' in class 'User' clashes with field of similar name from base class 'AbstractBaseUser'?

Я использую Django 1.5. У меня есть следующие модели: Класс пользователя (AbstractBaseUser): #id = models.IntegerField (primary_key = True) #identifier = models.CharField (max_length = 40, уникальный = True, db_index = True) имя пользователя = models.CharField (max_length = 90, уникальный = True, db_index = True) create_time = models.DateTimeField (нуль = True, пусто = True) update_time = models.DateTimeField (нуль = True, пустой = True) электронная почта = models.CharField (max_length = 225) пароль = models.CharField (max_length = 120) внешний = models.IntegerField (нуль = True, пустой = True) удален = models.IntegerField (нуль = True, пустой = True) продували = models.IntegerField (нуль = True, пустой = True) form_values_id = models.IntegerField (нуль = True, пустой = True) disk_usage = models.DecimalField (нуль = True, max_digits = 16, decimal_places = 0, пустой = True) = объекты UserManager () USERNAME_FIELD = «электронная почта» класс Мета: db_table = u'galaxy_user»Я получаю эту ошибку при запуске ./manage.py SyncDB: FieldError: локальное поле„пароль“в классе„“столкновений пользователей с полем похожего названия от базового класса AbstractBaseUser "Я попытался удалить поле пароля от модели, но он не проходит проверку подлинности, даже если поле пароля удаляется из модели. Я использую свою пользовательскую проверку подлинности Django: класс AuthBackend: Защиту не аутентификации (самостоятельно, имя пользователя = None, пароль = None): если '@' в имени пользователя: kwargs = { 'электронная почта': имя пользователя} еще: kwargs = { 'имя пользователя': имя пользователя} попробовать: пользователь = User.objects.get (** kwargs) если user.check_password (пароль):
pynovice
1

голосов
1

ответ
491

Просмотры

Why does calling logout() in middleware not work for the current request?

Я построил небольшой пользовательский межплатформенное для выхода из системы пользователя и вымывать сеанс условно. Я бы ожидать, что текущий запрос, чтобы пользователь вышел из системы. Однако, для запроса / ответа обрабатываемого в данный момент, я до сих пор полный ответ, как если бы пользователь не вышли из системы, и сеанс вполне доступен (неожиданный). Все последующий запрос не имеет сессии больше (как и ожидалось). Рытье вниз в SessionStore представляется, что сессия только модель и далее в запросе восстановить только с помощью ключа сеанса от куки браузера послал. Кроме того, выход из системы () кажется неэффективным из-за этого тоже. Как я могу на самом деле выйти из пользователя в ПО промежуточного слоя? Должен ли я вручную удалить сессию из базы данных? Это кажется таким болезненным. В MYAPP / middleware.py: от django.contrib.sessions. промежуточный импорт SessionMiddleware из django.contrib.auth класса импорта выхода из системы SomeSessionMiddleware (SessionMiddleware): Защита process_response (самость, запрос, ответ): если somecondition: выход из системы (запрос) request.session.flush () печати "промывка сеанса, выйди из пользователя" # Я вижу это. # И просто вызовите обратный супер класс супер (SomeSessionMiddleware, самость) .process_response (запрос, ответ) В settings.py: MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware' # 'django.contrib.sessions.middleware.SessionMiddleware », 'myapp.middleware.SomeSessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
gertvdijk
1

голосов
1

ответ
121

Просмотры

Не удается войти в Джанго

Я только что установил мое приложение на новом сервере, чтобы проверить что-то. Настройка все прошло гладко, приложение отлично работает с локальной базой данных тузд позади него, которая полностью синхронизируются. Единственная проблема, я не могу войти. Я попытался войти в через мой внешний интерфейс, так и через администратора. Для обоих, если я ввожу неправильные детали он показывает сообщение об ошибке. Если я ввожу правильные детали нет, но до сих пор бросает меня обратно на страницу входа в систему. Там нет ничего в журналах, чтобы предположить, что происходит, все это я получаю в журнале runserver что-то вроде: [26 / Jun / 2013 15:09:31] «POST / счет / Логин / HTTP / 1.0» 302 0 [26 / июнь / 2013 15:09:31] "GET / приборная панель / HTTP / 1.0" 302 0 [26 / Jun / 2013 15:09:31] "GET / аккаунт / Войти /? следующая = / приборная панель / HTTP / 1.0" 200 2537 Я четко войти в порядке, перенаправлены на приборной панели, затем отскочил прямо назад для входа. Я озадачен, как туда, где начать искать отладить эту проблему. Та же установка работает нормально в другом месте. Может кто-нибудь дать мне какие-либо подсказки относительно того, где начать смотреть?
fredley
1

голосов
3

ответ
69

Просмотры

Создание Джанго пользователей с использованием двух различных способов

Я попытался создать пользователей (django.contrib.auth.models.User) в Джанго с помощью двух различных способов: с помощью User.objects.create (имя = «», пароль = «», по электронной почте = ") -> Когда я использую это, пользователи Логгина в и все другие преимущества, наступившего с auth.models.User не получены, например, я не могу использовать проверку подлинности на пользователей создали этот путь. Использование User.objects.create_user ( «», «», «»). Делать вещи таким образом, не имеет никаких проблем, и вы можете использовать все свободные вещи, которая поставляется с приложением Идента Джанго. Моим вопрос, почему это так?
Games Brainiac
1

голосов
1

ответ
116

Просмотры

Customize user authentication

Может кто-нибудь дать больше информации о настройке системы аутентификации Django. Ну, я создал пользовательский пользователя, в котором я использую электронную почту в качестве идентификатора: USERNAME_FIELD = «электронная почта», и я создал бэкенд пользовательские аутентификации, и я изменил аутентификации бэкенд на эту новую в файле настроек: класс Custom_Authentication (ModelBackend): защиту аутентификации (я, электронная почта = None, пароль = None): попробуйте: пользователь = self.user_class.objects.get (электронная почта = адрес электронной почты), если user.check_password (пароль): возвращение пользователя кроме self.user_class.DoesNotExist: не возвращать None четкости get_user (я, user_id): попробуйте: обратный self.user_class.objects.get (рк = user_id), за исключением self.user_class.DoesNotExist: пользователь) вернуть HttpResponseRedirect ( «/ LoggedIn /») еще: вернуть HttpResponseRedirect ( «/ недействующий /») Я попробовал это, и кажется, что он не распознает пользователя, который я создал с помощью интерфейса администратора. Существуют ли какие-либо другие вещи, которые я должен изменить?
user1150231
1

голосов
1

ответ
71

Просмотры

Что причина Django contrib.auth дублируется URL маршрутов?

Джанго новичок здесь - возиться вокруг модуля contrib.auth, заметил пару мест, где Существовал и другие маршруты, определенные: Из /django/contrib/auth/urls.py # Представления, используемое ниже, как правило, отображается в django.contrib.admin.urls .py # Этот файл URL-адрес используются для обеспечения надежного развертывания вида для целей тестирования. # Также предоставляется в качестве удобства для тех, кто хочет, чтобы развернуть эти URL-адреса # в других местах. Что означает «надежное развертывание вида для целей тестирования» означает, и что значит «развернуть эти URL-адрес в другом месте» означает в данном контексте?
mallyvai
1

голосов
1

ответ
96

Просмотры

Как сохранить два различных пользователей в модели Django?

Мой случай связан с покупкой, клиент, который покупает что-то и продавец, который продал его. Models.py от django.contrib.auth.models импорта класса Пользователь покупки (models.Model): клиент = models.ForeignKey (Пользователь) продавец = models.ForeignKey (Пользователь) Я понимаю, что приведенный выше код не так, я пишу таким образом, так как понял вопрос. Я беру систему аутентификации django.contrib, чтобы избежать того, чтобы сделать другую систему аутентификации для клиентов и один для продавцов, я хочу Джанго повторного использования кода. Решение думали о создании другой модели данных для продавцов или покупателей, но на мой взгляд, и при входе в систему я использую django.contrib, то я бы до сих пор используют эту систему аутентификации хотел бы знать, есть ли какой-либо способ, или если я в конечном счете, что создать другую систему аутентификации?
Daniel Mendoza
1

голосов
1

ответ
56

Просмотры

аутентификация пользователя Джанго ForeignKey

У меня есть расширенная модель пользователя в Джанго. Класс USERPROFILE (models.Model): пользователь = models.OneToOneField (Пользователь, related_name = "Профиль") uniID = models.CharField (max_length = 6) Кроме того, я хочу, чтобы войти, когда пользователь входит в мою систему используя: класс systemEntry (models.Model): пользователь = models.ForeignKey (USERPROFILE) = время models.DateTimeField (auto_now = True) Я использую модель аутентификации Джанго при входе пользователя в систему: tempUser = auth.authenticate (имя пользователя = myCredentials [ 'имя пользователя' ], пароль = myCredentials [ 'пароль']) р = systemEntry (. пользователь = userProfile.objects.filter (user.get_profile () имя пользователя = myCredentials [ 'имя пользователя'])) p.save () Давать об ошибке: ключевое слово может» т быть выражением (views.py, строка 29) Где моя ошибка?
Syntax_Error
1

голосов
1

ответ
61

Просмотры

Python - как именно Джанго проверяет его печенье?

Простите меня, если это новичок вопрос. Я читал на проверки печенья и наткнулся на вопрос о том, как же именно Django проверяет его печенье? Если я правильно помню, Django хранит идентификатор сессии в куки для последующего использования. Означает ли это, что тот, кто фальсифицирует печенье будет иметь возможность использовать произвольные данные сеанса?
Shawn Li
1

голосов
1

ответ
340

Просмотры

Django default login view always populates the next field

Я использую систему аутентификации Джанго по умолчанию с небольшим количеством настроек. Основные функциональные возможности для входа и выхода из системы работает, как ожидалось. Проблема заключается в следующем фрагменте кода в шаблоне формы Логин: {%, если в следующем%} Пожалуйста, войдите, чтобы увидеть эту страницу. {% ENDIF%} Это адаптированное с точки зрения примера авторизации, представленным в официальной документации. Идея заключается в том, что если пользователь попытается получить доступ к защищенной странице без регистрации, он / она будет перенаправлена ​​на страницу входа и следующий параметр установлен в URL защищаемой страницы. Это работает отлично. Тем не менее, когда пользователь нажимает на URL входа и переходит непосредственно к URL входа, не должно отображаться выше сообщение об ошибке. Но в этом случае следующий параметр создается в LOGIN_REDIRECT_URL от settings.py и мы видим это сообщение об ошибке. Я пытался отладить, чтобы найти, где проблема, и нашел его в классе django.contrib.auth.views.LoginView. Этот класс имеет метод get_success_url который получает URL перенаправления либо из следующего параметра или из LOGIN_REDIRECT_URL. Этот метод используется для заполнения контекста для формы входа в методе get_context_data, который, по моему мнению, является неправильным. Способ доставки также использует get_success_url, чтобы получить URL перенаправления, который является правильным, потому что цель состоит в том, чтобы на самом деле перенаправления. Я не уверен, если мое объяснение ясно, дайте мне знать, если это не так. Есть обходной путь для этого? Должен ли я сообщить об ошибке для этого? Использование: Python: 3.6 (Anaconda3, 64 бит) Django: 1.11.1 DJANGO регистрация: 2.2 Воспитанный Django ошибку https://code.djangoproject.com/ticket/28229. views.LoginView класс. Этот класс имеет метод get_success_url который получает URL перенаправления либо из следующего параметра или из LOGIN_REDIRECT_URL. Этот метод используется для заполнения контекста для формы входа в методе get_context_data, который, по моему мнению, является неправильным. Способ доставки также использует get_success_url, чтобы получить URL перенаправления, который является правильным, потому что цель состоит в том, чтобы на самом деле перенаправления. Я не уверен, если мое объяснение ясно, дайте мне знать, если это не так. Есть обходной путь для этого? Должен ли я сообщить об ошибке для этого? Использование: Python: 3.6 (Anaconda3, 64 бит) Django: 1.11.1 DJANGO регистрация: 2.2 Воспитанный Django ошибку https://code.djangoproject.com/ticket/28229. views.LoginView класс. Этот класс имеет метод get_success_url который получает URL перенаправления либо из следующего параметра или из LOGIN_REDIRECT_URL. Этот метод используется для заполнения контекста для формы входа в методе get_context_data, который, по моему мнению, является неправильным. Способ доставки также использует get_success_url, чтобы получить URL перенаправления, который является правильным, потому что цель состоит в том, чтобы на самом деле перенаправления. Я не уверен, если мое объяснение ясно, дайте мне знать, если это не так. Есть обходной путь для этого? Должен ли я сообщить об ошибке для этого? Использование: Python: 3.6 (Anaconda3, 64 бит) Django: 1.11.1 DJANGO регистрация: 2.2 Воспитанный Django ошибку https://code.djangoproject.com/ticket/28229. Этот класс имеет метод get_success_url который получает URL перенаправления либо из следующего параметра или из LOGIN_REDIRECT_URL. Этот метод используется для заполнения контекста для формы входа в методе get_context_data, который, по моему мнению, является неправильным. Способ доставки также использует get_success_url, чтобы получить URL перенаправления, который является правильным, потому что цель состоит в том, чтобы на самом деле перенаправления. Я не уверен, если мое объяснение ясно, дайте мне знать, если это не так. Есть обходной путь для этого? Должен ли я сообщить об ошибке для этого? Использование: Python: 3.6 (Anaconda3, 64 бит) Django: 1.11.1 DJANGO регистрация: 2.2 Воспитанный Django ошибку https://code.djangoproject.com/ticket/28229. Этот класс имеет метод get_success_url который получает URL перенаправления либо из следующего параметра или из LOGIN_REDIRECT_URL. Этот метод используется для заполнения контекста для формы входа в методе get_context_data, который, по моему мнению, является неправильным. Способ доставки также использует get_success_url, чтобы получить URL перенаправления, который является правильным, потому что цель состоит в том, чтобы на самом деле перенаправления. Я не уверен, если мое объяснение ясно, дайте мне знать, если это не так. Есть обходной путь для этого? Должен ли я сообщить об ошибке для этого? Использование: Python: 3.6 (Anaconda3, 64 бит) Django: 1.11.1 DJANGO регистрация: 2.2 Воспитанный Django ошибку https://code.djangoproject.com/ticket/28229. Способ доставки также использует get_success_url, чтобы получить URL перенаправления, который является правильным, потому что цель состоит в том, чтобы на самом деле перенаправления. Я не уверен, если мое объяснение ясно, дайте мне знать, если это не так. Есть обходной путь для этого? Должен ли я сообщить об ошибке для этого? Использование: Python: 3.6 (Anaconda3, 64 бит) Django: 1.11.1 DJANGO регистрация: 2.2 Воспитанный Django ошибку https://code.djangoproject.com/ticket/28229. Способ доставки также использует get_success_url, чтобы получить URL перенаправления, который является правильным, потому что цель состоит в том, чтобы на самом деле перенаправления. Я не уверен, если мое объяснение ясно, дайте мне знать, если это не так. Есть обходной путь для этого? Должен ли я сообщить об ошибке для этого? Использование: Python: 3.6 (Anaconda3, 64 бит) Django: 1.11.1 DJANGO регистрация: 2.2 Воспитанный Django ошибку https://code.djangoproject.com/ticket/28229.
1

голосов
2

ответ
3.1k

Просмотры

Как использовать самозагрузки формы входа для аутентификации пользователей Джанго

Я строю мой самый первый веб-приложение Django и есть один вопрос, который я не могу найти решение. Моя домашняя страница (index.html) является начальной загрузки на основе и отображает текст вместе с загрузочном войти в форму. Что такое правильный способ разрешить аутентификацию Django от этой начальной загрузки формы входа? Я попытался решения, основанные на предложениях, найденных здесь и там в Интернете, но я получаю ошибки. Вот мой код: Inside index.html интерфейс администратора Добро пожаловать в выделенному администратора Interface.Log, чтобы получить доступ к приборной панели и панель управления. Адрес электронной почты Пароль Запомнить меня Войти Внутри MYAPP / urls.py от django.conf.urls импорта включают, URL с видом на импорт пользователей из django.contrib.
Giulia
1

голосов
1

ответ
521

Просмотры

объединить AUTH_USER Джанго с существующей пользовательской таблицей

В настоящее время у меня есть наследие приложение, которое ссылается на таблицу пользователей со всеми пользовательскими полями. Так как есть хорошее количество унаследованного кода со ссылкой на эту таблицу я не могу просто переименовать эту таблицу AUTH_USER. Так что я пытаюсь сделать, это каким-то образом сливаются (я не знаю, что его право термин) AUTH_USER и пользователем. Ниже приведена таблица пользователей: + ------------------- + -------------- + ------ + ----- + - -------- + ---------------- + | поле | Тип | Null | Ключ | По умолчанию | Extra | + ------------------- + -------------- + ------ + ----- + - -------- + ---------------- + | user_id | INT (10) | НЕТ | PRI | NULL | auto_increment | | имя | VARCHAR (100) | НЕТ | | NULL | | | адрес | VARCHAR (100) | НЕТ | | NULL | | | PHONE_NO | VARCHAR (15) | НЕТ | | NULL | | | город | VARCHAR (100) | НЕТ | | NULL | | | состояние | VARCHAR (100) | НЕТ | | NULL | | | pin_no | INT (10) | НЕТ | | NULL | | | типа | VARCHAR (100) | НЕТ | | NULL | | | Эл. адрес | VARCHAR (100) | НЕТ | | NULL | | | пароль | VARCHAR (100) | НЕТ | | NULL | | | is_active | TINYINT (1) | НЕТ | | NULL | | | роль | VARCHAR (40) | НЕТ | | NULL | | | CREATION_DATE | INT (100) | НЕТ | | NULL | | | edit_date | INT (100) | НЕТ | | NULL | | | страна | VARCHAR (255) | НЕТ | | NULL | | | район | VARCHAR (255) | НЕТ | | NULL | | | ф | VARCHAR (255) | НЕТ | | NULL | | | added_by | INT (11) | НЕТ | | NULL | | | is_phone_verified | двоичный (1) | НЕТ | | 0 | | | remember_token | VARCHAR (100) | ДА | | NULL | | | disclaimer_agreed | INT (11) | ДА | | 0 | | | mobile_login | TINYINT (4) | НЕТ | | 0 | | + ------------------- + -------------- + ------ + ----- + - -------- + ---------------- + и таблица AUTH_USER Джанго: + -------------- + -------------- + ------ + ----- + ------ --- + ---------------- + | поле | Тип | Null | Ключ | По умолчанию | Extra | + -------------- + -------------- + ------ + ----- + ------ --- + ---------------- + | ID | INT (11) | НЕТ | PRI | NULL | auto_increment | | пароль | VARCHAR (128) | НЕТ | | NULL | | | last_login | Дата и время (6) | ДА | | NULL | | | is_superuser | TINYINT (1) | НЕТ | | NULL | | | имя пользователя | VARCHAR (150) | НЕТ | UNI | NULL | | | first_name | VARCHAR (30) | НЕТ | | NULL | | | last_name | VARCHAR (30) | НЕТ | | NULL | | | электронная почта | VARCHAR (254) | НЕТ | | NULL | | | is_staff | TINYINT (1) | НЕТ | | NULL | | | is_active | TINYINT (1) | НЕТ | | NULL | | | date_joined | Дата и время (6) | НЕТ | | NULL | | + -------------- + -------------- + ------ + ----- + ------ --- + ---------------- + что я хочу, это одна таблицы, что Джанго будет ссылаться при помощи связанной contrib.auth материала, а также в то же время не принизить мой унаследованный код. может быть что-то вроде этого: + ------------------- + -------------- + ------ + ----- + - -------- + ---------------- + | поле | Тип | Null | Ключ | По умолчанию | Extra | + ------------------- + -------------- + ------ + ----- + - -------- + ---------------- + | user_id | INT (10) | НЕТ | PRI | NULL | auto_increment | | имя | VARCHAR (100) | НЕТ | | NULL | | | адрес | VARCHAR (100) | НЕТ | | NULL | | | PHONE_NO | VARCHAR (15) | НЕТ | | NULL | | | город | VARCHAR (100) | НЕТ | | NULL | | | состояние | VARCHAR (100) | НЕТ | | NULL | | | pin_no | INT (10) | НЕТ | | NULL | | | типа | VARCHAR (100) | НЕТ | | NULL | | | Эл. адрес | VARCHAR (100) | НЕТ | | NULL | | | пароль | VARCHAR (100) | НЕТ | | NULL | | | is_active | TINYINT (1) | НЕТ | | NULL | | | роль | VARCHAR (40) | НЕТ | | NULL | | | CREATION_DATE | INT (100) | НЕТ | | NULL | | | edit_date | INT (100) | НЕТ | | NULL | | | страна | VARCHAR (255) | НЕТ | | NULL | | | район | VARCHAR (255) | НЕТ | | NULL | | | ф | VARCHAR (255) | НЕТ | | NULL | | | added_by | INT (11) | НЕТ | | NULL | | | is_phone_verified | двоичный (1) | НЕТ | | 0 | | | remember_token | VARCHAR (100) | ДА | | NULL | | | disclaimer_agreed | INT (11) | ДА | | 0 | | | mobile_login | TINYINT (4) | НЕТ | | 0 | | | last_login | Дата и время (6) | ДА | | NULL | | | is_superuser | TINYINT (1) | НЕТ | | NULL | | | имя пользователя | VARCHAR (150) | НЕТ | UNI | NULL | | | first_name | VARCHAR (30) | НЕТ | | NULL | | | last_name | VARCHAR (30) | НЕТ | | NULL | | | is_staff | TINYINT (1) | НЕТ | | NULL | | | is_active | TINYINT (1) | НЕТ | | NULL | | | date_joined | Дата и время (6) | НЕТ | | NULL | | + ------------------- + -------------- + ------ + ----- + - -------- + ---------------- + мотивом здесь, чтобы воспользоваться встроенной проверки подлинности и разрешения системы Джанго, но не нарушая унаследованного кода. Я думаю, что должно быть решение для этого, поскольку это не первый раз, кто-то портировать некоторые устаревшие приложения Джанго. Я хотел бы также упомянуть эту ссылку Как Продлить Django модели пользователя, но я не уверен, какой подход лучше, чтобы принять или я должен делать что-то совершенно другое
Ishan Khare
1

голосов
1

ответ
1.4k

Просмотры

Signup email validation using Django rest framework

Я создаю пользователя, отправив запрос POST через приложение для Android с запросом, содержащим имя пользователя, пароль и адрес электронной почты идентификатор. Теперь в моем приложении, есть два вида пользователей, т.е. учителей и студентов. Теперь для различения между преподавателями и студентами в процессе регистрации я хочу, чтобы отправить письмо с подтверждением учителя, состоящим из случайно сгенерированных маркеров. Теперь я хочу, чтобы учитель ввести этот маркер во время Signup проверить, что на самом деле, учитель подписывает и не какой-то озорной студент, который просто хочет портить со всеми. Я могу отправить письмо, содержащее маркер, но не могу понять, что, как я проверю его, когда учитель входит маркер на приложении при регистрации, совпадает с маркером отправленным на адрес электронного идентификатор. Ниже приведен код моего сериализатора используется для отправки электронной почты, содержащей маркер класса UserSerializer (сериализаторы. Теперь мой пользователь будет вводить маркер из электронной почты в приложении и отправить запрос POST. Теперь я хочу, чтобы проверить, является ли маркер, введенный пользователем, таким же, как знак, полученным выше в коде, так что я могу проверить пользователь и продолжить форму регистрации. PS: Моя модель пользователя не содержит маркер поля, как я с помощью встроенной пользовательской модели при условии Джанго и подключая его к модели учителя с помощью One-To-One-Field PPS: Есть ли другой способ, что я могу использовать для реализации вышеупомянутых функциональных возможностей?
Sahil
1

голосов
1

ответ
69

Просмотры

Как использовать аутентификацию Джанго (django.contrib.auth) с моим Android приложение

Я использую Django, как мой бэкэнда для моего Android App. Я обработка запроса поста с помощью @ CSRF освобожденной аннотации с моими взглядами, как я был не в состоянии иметь дело с проверкой CSRF во время отправки после запроса от андроида (залп БИБЛИОТЕКИ). Теперь, я должен использовать django.contrib.auth вход и выход методу, но сессии не работает, когда я посылаю после запроса от андроида. Я пытался, позволяющие печенья с моей просьбой в андроиде, но это тоже не работает (что позволяет печенье также не решали проверка CSRF удалась выпуск) .Такжем я пытался принимать CSRF токен из запроса GET Джанго (django.middleware.csrf - get_token) и передает эту CSRF токен в заголовках (X-CSRF-токен) в моих почтовых запросов, которые также не работают. Код, который я использовал для того, чтобы печенье в андроиде: менеджер CookieManager = новый CookieManager (); CookieHandler. SetDefault (менеджер); Итак, 1. Я не знаю, как использовать Джанго скрипты без использования @ CSRF-освобожденного от андроида. 2. и как использовать Джанго вход с андроида
1

голосов
1

ответ
44

Просмотры

Добавить пароль к модели Django Group

Можно ли защитить пароль группы, так что пользователь может только присоединиться к группе, если пользователь имеет пароль для этой группы? Я знаю, что можно добавлять поля в модели группы с Group.add_to_class ( «пароль», CharField (max_length = 180, нуль = True, пустой = True)) Но как я могу осуществить это в безопасном режиме? Я хочу, чтобы пароль правильно хэшируются и хранить. В сущности, как я могу добавить поле для ввода пароля пользователя в группу, а? EDIT: для строки документации класса группы в источнике. Группы представляют собой общий способ категоризации пользователей применять разрешение или какой-либо другой ярлык, для тех пользователей. Пользователь может принадлежать к любому количеству групп. Помимо разрешений, группы представляют собой удобный способ классифицировать пользователь применить некоторые метки, или расширенную функциональность, к ним. Все я использую группу для вот этикетки,
brno32
1

голосов
2

ответ
0

Просмотры

Custom Middleware blocking my Password Reset View

I had made a Custom Middelware to secure all my views at once and made a custom decorator to exempt login and register/signup functions so that they're accessible to visitors. But when i tried to reset my password using the password-reset, i couldn't as it redirected me to login page, this system worked earlier when i had not put my Custom middelware inside the settings.py Middleware.py from django.contrib.auth.decorators import login_required def login_exempt(view): #
ans2human
1

голосов
1

ответ
308

Просмотры

Использование Джанго с печеньем наследия аутентификации

У меня есть большой кодовый в доморощенных рамках питона. Я буду постепенно перемещать код Джанго, но в то же время необходимо поддерживать входа в систему с помощью старой системы. Старая система использует куки для идентификации пользователя после того, как они вошли в систему. Я не хочу, чтобы пользователи войти через Django, но я хочу, чтобы иметь возможность использовать @login_required, а также несколько приложений, которые полагаются на систему Идент Джанго , такие, как администратор, Джанго-теги и Джанго закомментаренные. Какой самый лучший способ интеграции двух систем AUTH? Обе базы кода работают в пределах того же процесса питона (через WSGI промежуточного программного обеспечения, который переключает приложения каждого запроса) и может загружать модули друг от друга по мере необходимости.
GDorn
1

голосов
2

ответ
0

Просмотры

Джанго аутентификации: странная ошибка с Authenticate ()

Я использую проверку подлинности () для аутентификации пользователей вручную. Используя интерфейс администратора, я могу видеть, что нет никакого «last_login» атрибут для пользователей отладки TRACEBACK является: Окружающая среда: Запрос Метод: GET запрос URL: https: // локальный / Логин / Django Версия: 1.1.1 Python Версия: 2.6.5 Установленные Применение: [ 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', 'mobius.polls'] устанавливаемые Middleware: ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware') Traceback: Файл «/ USR / Lib / pymodules / python2. 6 / Джанго / ядро ​​/ обработчики / base.py»в get_response 92. ответ = обратный вызов (запрос, * callback_args ** callback_kwargs) Файл "/usr/lib/pymodules/python2.6/django/contrib/auth/__init__.py" в входе 55. user.last_login = datetime.datetime.now ( ) Тип исключения: AttributeError в / входа / Exception Значение: «юникода» объект не имеет атрибута «last_login» Я не могу понять, почему существует такое несоответствие. Любой вид помощи был бы оценен. Заранее спасибо!
Nullpoet
1

голосов
1

ответ
6.5k

Просмотры

Why can Django not load Auth module?

I'm currently experimenting with setting up an Django app with apache + mod_wsgi for the app and using nginx for the static files. I had the app working and now wanted to add authentication, so to control serving static files. I can still load my index.html, but when I try login or admin I get an ImportError "No module named auth". I have checked and it's in the settings and in the template login. I don't know what the problem is, maybe anyone has an idea what might be wrong. ERROR PAGE ImportError at /admin/ No module named auth Request Method: GET Request URL: http://127.0.1.1:8080/admin/ Django Version: 1.5 Exception Type: ImportError Exception Value: No module named auth Exception Location: /usr/local/lib/python2.7/dist-packages/django/utils/importlib.py in import_module, line 35 Python Executable: /usr/bin/python Python Version: 2.7.3 Python Path: ['/usr/local/lib/python2.7/dist-packages/flup-1.0.3.dev_20110405-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel', '/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-installer', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol', '/home/christian/public_html/django_nginx_test/private/test_project', '/home/christian/public_html/django_nginx_test/private'] SETTINGS.PY # Django settings for test_project project. DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = ( # ('Your Name', '[email protected]'), ) MANAGERS = ADMINS DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 'NAME': 'django_nginx_test', # Or path to database file if using sqlite3. 'USER': '###', # Not used with sqlite3. 'PASSWORD': '###', # Not used with sqlite3. 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '', # Set to empty string for default. Not used with sqlite3. } } # Local time zone for this installation. Choices can be found here: # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # although not all choices may be available on all operating systems. # In a Windows environment this must be set to your system time zone. TIME_ZONE = 'Europe/Berlin' # Language code for this installation. All choices can be found here: # http://www.i18nguy.com/unicode/language-identifiers.html LANGUAGE_CODE = 'en-us' SITE_ID = 1 # If you set this to False, Django will make some optimizations so as not # to load the internationalization machinery. USE_I18N = True # If you set this to False, Django will not format dates, numbers and # calendars according to the current locale. USE_L10N = True # If you set this to False, Django will not use timezone-aware datetimes. USE_TZ = True # Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/home/media/media.lawrence.com/media/" MEDIA_ROOT = '' # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash. # Examples: "http://media.lawrence.com/media/", "http://example.com/media/" MEDIA_URL = '' # Absolute path to the directory static files should be collected to. # Don't put anything in this directory yourself; store your static files # in apps' "static/" subdirectories and in STATICFILES_DIRS. # Example: "/home/media/media.lawrence.com/static/" STATIC_ROOT = '' # URL prefix for static files. # Example: "http://media.lawrence.com/static/" STATIC_URL = 'http://127.0.1.1:8081/static/' # Additional locations of static files STATICFILES_DIRS = ( # Put strings here, like "/home/html/static" or "C:/www/django/static". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. ) # List of finder classes that know how to find static files in # various locations. STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', # 'django.contrib.staticfiles.finders.DefaultStorageFinder', ) # Make this unique, and don't share it with anybody. SECRET_KEY = '___' # List of callables that know how to import templates from various sources. TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', 'django.template.loaders.eggs.Loader', ) MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', # Uncomment the next line for simple clickjacking protection: # 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) ROOT_URLCONF = 'test_project.urls' # Python dotted path to the WSGI application used by Django's runserver. WSGI_APPLICATION = 'test_project.wsgi.application' TEMPLATE_DIRS = ( '/home/christian/public_html/django_nginx_test/private/test_project/templates/test_app' # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. ) INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'test_app', # Uncomment the next line to enable the admin: 'django.contrib.admin', # Uncomment the next line to enable admin documentation: # 'django.contrib.admindocs', ) # A sample logging configuration. The only tangible logging # performed by this configuration is to send an email to # the site admins on every HTTP 500 error when DEBUG=False. # See http://docs.djangoproject.com/en/dev/topics/logging for # more details on how to customize your logging configuration. LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse' } }, 'handlers': { 'mail_admins': { 'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler' } }, 'loggers': { 'django.request': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True, }, } } URLS.PY of Project from django.conf.urls import * # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', url(r'^$', include('test_app.urls')), # Examples: # url(r'^$', 'test_project.views.home', name='home'), # url(r'^test_project/', include('test_project.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), url(r'^login/$', 'auth.views.login_user'), ) URLS.PY from APP from django.conf.urls.defaults import * urlpatterns = patterns('test_app.views', url(r'^$', 'index'), )
masterlampe
1

голосов
1

ответ
283

Просмотры

Если вид Джанго делает User.get на имя пользователя в то время как другой пользователь вошел в систему, контекст пользователь потерял?

У меня есть приложение Джанго Учитель / Student. Когда Учитель вошел в систему, и хочет видеть прогресс Стьюдента, это то, что я делаю: Учитель вошел в систему и является request.user. Она просит отчеты для студента с именем сказать «mystudent» studentuser = get_object_or_404 (Пользователь, имя пользователя = «mystudent») А затем переходит для извлечения данных из этого студента, чтобы отобразить его Учителю В моем шаблоне, у меня есть: Учитель: {{}} user.username Student Info: Я получаю правильный Student Info, но я не вижу имя Учителя. Мой шаблон также навигации в зависимости от того регистрируется пользователь или нет, и на этой странице, я получаю вид not_logged_in моей навигационной панели. Тем не менее, теперь, если я просматриваю на другие страницы, которые также проявляют Учитель: {{}} user.username, имя пользователя видно, и отображается logged_in панель навигации. Так что это как раз для этого один шаблон, который спутать с пользователем, хотя фактический пользователь Войти (Учитель) является действительным, и сохраняется. Может кто-то пожалуйста, объясните, что происходит здесь не так?
zaphod
1

голосов
2

ответ
1.4k

Просмотры

Джанго ошибка аутентификации пользователя

Я использую следующий код для входа в систему, но позже, когда я перейти от index.html и попытаться получить доступ к get_profile () он говорит, что идентификатор не связан. Но когда я печатаю следующие переменные и являются ложными. Что я делаю неправильно здесь? EDIT Защита someotherview (запрос): logging.debug (request.user.is_authenticated ()) #prints ложных logging.debug (request.user.is_active) #prints лжи Это, как вход в системе Логина Защиты (запрос): QD = get_request_type ( запрос) попробовать: uname = QD .__ GetItem __ ( 'имя пользователя') PWD = QD .__ GetItem __ ( 'пароль') пользователя = аутентификации (имя пользователя = uname, пароль = PWD), если пользователь не является None: response_dict.update ({ 'да' : 1}) logging.debug ( "labs_home1 ==================") возвращение render_to_response ( 'главная / index.html', context_instance = RequestContext (запрос, {»
Rajeev
1

голосов
1

ответ
105

Просмотры

Должен ли я быть с использованием параметров GET в URL-адресов внутри шаблонов? (Django.contrib.auth)

У меня есть нулевой опыт работы с Django и все, что Web-связанной, но я хочу, чтобы убедиться, что я следую за лучшие практики с самого начала. Я использую django.contrib.auth и в base.html у меня есть что-то вроде: {%, если request.user.is_authenticated%} {% Выход еще%} Войти {% ENDIF%} и в моем urls.py: от Джанго .contrib.auth.views импорт Логин, выход из системы ... urlpatterns + = шаблоны ( '', гиперссылка (г '^ Войти / $', Логин, { 'template_name': 'omgame / login.html'}), URL ( г «^ выход из системы / $», выход из системы, { «redirect_field_name»: «следующая»})) Как вы можете видеть, я построения URL с параметрами GET в URL, чтобы достичь перенаправления после входа / выхода из системы. Это то, как я должен справиться с этим? Сначала я пытался использовать {%% URL} 's синтаксис, чтобы сделать это, но не повезло. П. S. К сожалению, если это кажется не конструктивным или даже не реальный вопрос. Это действительно лучший практика такие вещи, но я тоже новичок в этом полагаться на мое собственное суждение по поводу недостатков этого подхода. Из документов я не был в состоянии понять, как я должен использовать эти взгляды.
Lev Levitsky
1

голосов
2

ответ
337

Просмотры

Является ли request.user.is_authenticated () необходимо здесь?

Я пишу только для просмотра пользователей персонала. Защиту my_view (запрос): если request.user.is_staff: # показать что-то, чтобы укомплектовать еще: возвращение my_view_404 (запрос) Это такое разрешение проверки достаточно? Любой недостаток? Или я должен чек request.user.is_authenticated ()?
Frozen Flame
1

голосов
1

ответ
263

Просмотры

Храните специальные данные о неудачной аутентификации

Я пишу простой проект Django, и я хочу сохранить IP клиента и дату, когда попытка Логин не удается. Я готовлю модель: класс FailIp (models.Model): ф = models.CharField (max_length = 16, verbose_name = _ (u'fail входа ф '),) = дата models.DateTimeField (по умолчанию = datetime.now) Но я не знаю, как подключить к ошибке авторизации. Urls: URL (г '^ Войти / $', 'django.contrib.auth.views.login', { 'template_name': 'login.html'}, 'Логин' Name =) Как это сделать?
Nips
1

голосов
2

ответ
1.1k

Просмотры

Django redirect user after login pending on their group

I am using django's 'login view' via a form on my login.html page : {% csrf_token %} {{ form.username }} {{ form.password }} I have a custom decorator to check on certain pages if the user is part of a specific group, and if they arent I redirect them back to the login page. using : @login_required @user_passes_test(is_admin) The problem is, djangos built in feature of returning to login page and successfully logging in returns you back to the previous URL. So if you login and you're not in the group you will get stuck in a loop. I would like to have it so : login as user in Group B try URL that requires user in Group A return to login page login as user in Group B return to standard home page and NOT redirect back to previous url OR login as user in Group A redirected back to previous URL How would I go about doing this ? **EDIT after following Jakob's ideas i've got to a point where I can point the REDIRECT_URL to a custom view. But in this view i need to be able to say : what did the original URL want the user to be ? does that match the newly login details, if so, go to that url if not, go to home.html im still unsure how to do this
user2616166
1

голосов
1

ответ
719

Просмотры

Джанго, TastyPie, аутентификация и пользовательская промежуточный слой головной боль

У меня есть веб-приложение Django, который требует проверки подлинности для всего сайта. Я достиг, что с пользовательским ПО промежуточного слоя, который в основном проверить, если request.user.is_anonymous и, если они есть, перенаправляются на страницу входа в систему. Это выглядит следующим образом: от django.contrib.auth.views импорта Логин из django.contrib.auth импорта аутентификации из django.http импорта HttpResponseRedirect, HttpResponse из django.utils импорта simplejson из django.core импорта сериализаторов класса SiteLogin: «Это требует промежуточного программного обеспечения Войти для каждого просмотра»Защита process_request (я, запрос): если request.path = '/ счет / Войти /' и request.user.is_anonymous (!): если request.POST: возвращение Логин (запрос) еще: возвращение HttpResponseRedirect ( '/ счет / Войти /? следующий =% s' запроса%. путь) Теперь я делаю приложение IOS, которая, на данный момент, будет просто получать запросы с сервера Джанго. Я пытаюсь использовать TastyPie, чтобы сделать это, но я не могу получить работу на проверку подлинности. Я использую ApiKeyAuthentication и, я считаю, установите его правильно. Тем не менее, он просто перенаправляет меня на страницу входа в систему. Мне интересно, если мне нужно, чтобы изменить это промежуточное программное обеспечение для обработки TastyPie запросов, но я думал, что TastyPie может авторизовать для меня ... Я чувствую, что моя ситуация очень похожа на этот вопрос, но мне интересно, если мой заказ промежуточного слоя становится в путь. Вот мой api.py: от django.contrib.auth.models импорта пользователя из django.db импортных моделей от tastypie.resources импорта ModelResource из cpm.systems.models системы импорта из cpm.products.models импортировать продукт из tastypie.models импорта create_api_key от tastypie.
Garfonzo
1

голосов
1

ответ
717

Просмотры

Доступ к User.get_absolute_url в Django 1.7

Я просто повышен с Django 1.5 до 1.7 и теперь мои пользовательские объекты не имеют метода get_absolute_url на них. Это используется для работы: В работе [1]: от django.contrib.auth.models импорта Пользователя В [2]: и = User.objects.get (рк = 1) В работе [3]: u.get_absolute_url () --- -------------------------------------------------- ---------------------- AttributeError Traceback (самый последний вызов последнего) в () ----> 1 u.get_absolute_url () AttributeError: объект 'User' не имеет атрибута 'get_absolute_url' в [4]: ​​Для справки, это то, что у меня в settings.py: ABSOLUTE_URL_OVERRIDES = { 'auth.user': и лямбда: '/ / курс / профиль {0}' формат и. (u.username)} Любые идеи относительно того, что может быть причиной этого?
dshap
1

голосов
1

ответ
70

Просмотры

delete user specific content in django

У меня есть пользователи с конкретным пользователем контента. Мне удалось сделать только userspecific данные видны на стороне, но когда пользователь хочет удалить что-то, что он может просто удалить все, от любого пользователя, просто вставив случайный идентификатор. Как я могу помешать пользователю удалить другой контент пользователей? Класс представления TodoView (LoginRequiredMixin, FormView): form_class = TodoListForm success_url = reverse_lazy ( 'TODO') template_name = 'todolist.html' Защиту get_context_data (я, ** kwargs): стажер = Trainee.objects.get (пользователь = self.request .user) контекст = супер (TodoView, самость) .get_context_data (** kwargs) контекст [ 'learningobjective'] = LearningObjective.objects.filter (стажер = trainee.id) контекст [ 'ToDoList'] = TodoList.objects.filter ( стажер = trainee.id) возвращает контекст Защита get_form_kwargs (самостоятельно):
ZedsWhatSheSaid
1

голосов
2

ответ
895

Просмотры

How do I connect admin page in django with custom auth backend?

I used a custom auth backend in my django project to connect users, my problem is that i'm not able to connect using the admin interface anymore. this is my custom auth files : auth_backends.py: from django.conf import settings from django.contrib.auth.backends import ModelBackend from django.core.exceptions import ImproperlyConfigured from django.db.models import get_model class StudentModelBackend(ModelBackend): def authenticate(self, username=None, password=None): try: user = self.user_class_s.objects.get(username=username) if user.check_password(password): return user except self.user_class_s.DoesNotExist: return None def get_user(self, user_id): try: return self.user_class_s.objects.get(pk=user_id) except self.user_class_s.DoesNotExist: return None @property def user_class_s(self): if not hasattr(self, '_user_class'): self._user_class = get_model(*settings.CUSTOM_USER_MODEL.split('.', 2)) if not self._user_class: raise ImproperlyConfigured('Could not get student model') return self._user_class class ProfessorModelBackend(ModelBackend): def authenticate(self, username=None, password=None): try: user = self.user_class_p.objects.get(username=username) if user.check_password(password): return user except self.user_class_p.DoesNotExist: return None def get_user(self, user_id): try: return self.user_class_p.objects.get(pk=user_id) except self.user_class_p.DoesNotExist: return None @property def user_class_p(self): if not hasattr(self, '_user_class'): self._user_class = get_model(*settings.CUSTOM_USER_MODEL_P.split('.', 2)) if not self._user_class: raise ImproperlyConfigured('Could not get student model') return self._user_class settings.py: AUTHENTICATION_BACKENDS = ( 'authentification.auth_backends.StudentModelBackend', 'authentification.auth_backends.ProfessorModelBackend', ) CUSTOM_USER_MODEL = 'forum.Student' CUSTOM_USER_MODEL_P = 'forum.Professor' I tried this solution : from django.contrib.auth.decorators import login_required admin.autodiscover() admin.site.login = login_required(admin.site.login) but it redirect me to the user auth interface instead of admin interface. Could someone help me please ?
user3375448
1

голосов
2

ответ
579

Просмотры

Как обращаться с сеансом и маркер проверки подлинности на основе одновременно с использованием среднего изделия в Джанго?

Я хочу использовать оба маркера и сеанс проверку подлинности на основе моего приложения с приоритетом маркеров. Я создал два портал с той же URL одного сеанса используется и другие с помощью маркеров. Поэтому, когда сеанс доступен в куки, то запрос маркера на основе идет неудачу с «CSRF маркер отсутствует» сообщение об ошибке. Одно из решений, я имею в виду, используя мой средний стеклотару, где я могу сделать приоритет лексем. Если оба доступны в запросе, то на заказ среднего изделия будут удалены связанные сессии питания и держать только лексемы соответствующую информацию и продолжить. Если кто-то имеет решение доступное для этой проблемы, то пожалуйста, напишите в ответ? Заранее спасибо.
Hardik Patel

Просмотр дополнительных вопросов