抱歉这个令人困惑的标题.我试着减少冗长,但......
我想知道的是:Django的新行级别权限(a)是否修复了多租户应用程序带来的设计问题(我不是指多个用户,而是使用相同的db/db架构的多个实例),或者它是(b)只是一个更复杂的权限版本,允许您根据标准的用户和Auth应用程序规则管理行级别的权限.
(即,我想限制对此帐户的对象a,b,c的访问权限,以及d,e,f到此帐户VS用户可以访问博客文章的标题而不是内容)
我需要有一个函数告诉我django会话ID当前是否已经过身份验证.我知道这已经内置到django中,我的工作正常.
但是我有一个传递会话ID的外部应用程序,当它将会话ID字符串传递回django时,我需要验证此会话ID是否有效并且当前已经过身份验证.
我在哪里开始重用django 1.2的一些内置函数?
谢谢
python django django-authentication django-sessions django-users
当我没有登录时,我正在努力is_authenticated回归True:
u = request.user
if u.is_authenticated:
raise Exception('I am said to be authenticated, but I really am not.')
Run Code Online (Sandbox Code Playgroud)
为了澄清,Django调试视图正确识别u为AnonymousUser:
u <django.contrib.auth.models.AnonymousUser object at 0x9e76f4cc>
Run Code Online (Sandbox Code Playgroud)
更奇怪的是,模板内部 is_anonymous工作正常:
{% if not request.user.is_authenticated %}
We are anonymous.
{% endif %}
Run Code Online (Sandbox Code Playgroud)
这是为什么?
使用django-allauth将帐户与社交应用程序连接后,用户将被重定向到accounts/social/connections.我该如何改变这种行为?
我想使用Python Social Auth使用Steam OpenId后端对我的用户进行身份验证.我遵循了Django配置步骤.但是,此时我不知道接下来的步骤.
从理论上讲,我的应用程序已准备好使用OpenId提供程序,但我在文档中找不到任何告诉我如何使用提供程序的内容.要使用此功能,我需要做什么?
我主要使用django-allauth作为管理后端创建用户帐户的方法.我想要发生的是:
1)当用户完成注册程序时,发出验证电子邮件(我到目前为止工作)并将用户设置为非活动状态,工作人员,并通过defult分配给他们的"SurveyManager"组.目前,创建用户时将活动设置为true,将staff设置为false,并且不分配任何组.
2)单击电子邮件中的链接以验证其地址后,我希望将用户设置为活动状态,以便他们可以通过管理员后端登录.
我的具体问题是我不知道:1)如何或在何处设置用户的活动,人员和组的默认值 - 我想这可以在models.py文件中完成,但我的理解是用户模型包含在auth app中; 2)一旦电子邮件验证完成,如何触发代码将用户活动标志更改为true.
在此先感谢 - 如果这是一个创建不好的帖子,对不起,这是我的第一个!
我试图在我的应用程序中创建一个重置密码功能,并在中添加了以下几行urls.py。
urls.py
url(r'^resetpassword/passwordsent/$', 'django.contrib.auth.views.password_reset_done', name='password_reset_done'),
url(r'^resetpassword/$', 'django.contrib.auth.views.password_reset'),
url(r'^reset/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm'),
url(r'^reset/done/$', 'django.contrib.auth.views.password_reset_complete'),
Run Code Online (Sandbox Code Playgroud)
但是,当我输入有关重置密码的电子邮件ID时,它显示了我无法理解的错误。Reverse for 'password_reset_confirm' with arguments '()' and keyword arguments '我已经通过了一些建议,但都没有用。任何人都可以帮助我解决这个错误吗?
见下图:
一世
我正在Django 1.11中编写应用程序。
myapp/urls.py 图案看起来像
from django.conf.urls import url, include
from django.contrib import admin
from django.contrib.auth.views import LoginView
urlpatterns = [
url(r'^login/$', LoginView.as_view(), {'redirect_authenticated_user': True}),
url('^', include('django.contrib.auth.urls')),
url('^', include('pages.urls')),
url(r'^pages/', include('pages.urls')),
url(r'^search/', include('search.urls')),
url(r'^admin/', admin.site.urls),
]
Run Code Online (Sandbox Code Playgroud)
我想在尝试访问/login页面时重定向登录用户。为此,我已经按照此处的文档中的设置redirect_authenticated_user进行了设置True
但是,/login成功登录后访问时,它不会重定向。
因此,我是Django的新手。尽管我的代码在遵循Django文档“在Django中自定义身份验证”后可以工作,但我不知道示例中的self.model(...)实际如何工作,它的来源以及如何与'自'。
这是在文档底部找到的示例。
from django.db import models
from django.contrib.auth.models import (
BaseUserManager, AbstractBaseUser
)
class MyUserManager(BaseUserManager):
def create_user(self, email, date_of_birth, password=None):
"""
Creates and saves a User with the given email, date of
birth and password.
"""
if not email:
raise ValueError('Users must have an email address')
-> user = self.model(
email=self.normalize_email(email),
date_of_birth=date_of_birth,
)
user.set_password(password)
user.save(using=self._db)
return user
...
Run Code Online (Sandbox Code Playgroud) python authentication django django-authentication django-users
我目前正在Django中工作,正在尝试从中导入login,django.contrib.auth.views但是出现以下错误:
ImportError: cannot import name 'login'
Run Code Online (Sandbox Code Playgroud)
这是我的urls.py:
from django.conf.urls import url
from . import views
from django.contrib.auth.views import login
urlpatterns = [
url('', views.home),
url('login', login, {'template_name': 'accounts/login.html'})
]
Run Code Online (Sandbox Code Playgroud)
错误消息(cmd):
ImportError: cannot import name 'login'
Run Code Online (Sandbox Code Playgroud)