我试图限制使用2个用户级别的页面访问.超级用户和管理员.超级用户是指定了"is_superuser"的常规Django用户.管理员用户也是普通用户,仅分配了"is_staff"权限.
问题是当我为管理员用户使用这个装饰器时,它没有通过测试:
@permission_required('is_staff')
def my_view(....)
Run Code Online (Sandbox Code Playgroud)
@permission_required('is_staff')对匿名用户返回false.(正确)
@permission_required('is_superuser')仅对超级用户返回true(正确)
@permission_required('is_staff')对于分配了'is_staff'perm的用户返回FALSE.(错误).
有什么想法吗?
我正在编写一个需要执行管理任务的pyqt应用程序.我更喜欢用提升权限启动我的脚本.我知道在SO或其他论坛中多次询问此问题.但人们建议的解决方案是从Python脚本中查看这个SO问题 请求UAC提升?
但是,我无法执行链接中给出的示例代码.我已将此代码放在主文件的顶部并尝试执行它.
import os
import sys
import win32com.shell.shell as shell
ASADMIN = 'asadmin'
if sys.argv[-1] != ASADMIN:
script = os.path.abspath(sys.argv[0])
params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
sys.exit(0)
print "I am root now."
Run Code Online (Sandbox Code Playgroud)
它实际上要求提升权限,但打印行永远不会被执行.有人可以帮我成功运行上面的代码.提前致谢.
我有一个WPF应用程序,它访问本地机器上的Windows服务,任务调度程序.当我部署此WPF应用程序并在没有"以管理员身份运行"的情况下运行它时,它会失败,因为它无法访问本地计算机上的Windows服务和任务计划程序.如果我使用"以管理员身份运行"运行它,它可以正常工作.
在生产中部署应用程序时,如何使我的应用程序默认以管理模式运行?
我开始组织一个新项目,让我说我会有几个模型,如产品和目录.
我将允许我的客户(不是访客,只有特定客户)登录Django Admin站点来创建,编辑和删除他们自己的目录.
假设我创建了一个名为"Shop"的模型,创建每个商店(名称,地址,徽标,联系信息等)并创建一个绑定到该商店的管理员用户.
现在我想要这个新的管理员(谁不是网站管理员,但是商店管理员 - 可能是用户组)只能查看和编辑与他的商店链接的目录.
那可能吗?
我应该在Django Admin中执行此操作还是应该创建一个新的"shop admin"应用程序?
我有mysql的问题.我试图执行这个:
echo "show databases" | mysql -B -N
Run Code Online (Sandbox Code Playgroud)
但我得到了:
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
但当我执行时:
/etc/init.d/mysql restart
Run Code Online (Sandbox Code Playgroud)
我得到了'好'.
我做到了
GRANT ALL PRIVILEGES on *.* TO debian-sys-maint@localhost IDENTIFIED BY PASSWORD 'your password' WITH GRANT OPTION; FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
密码来自哪里/etc/mysql/debian.cnf.但它没有帮助.(当然我刷新了priv并重新启动了mysql).
我无法登录django管理页面.当我输入有效的用户名和密码时,它只会再次显示登录页面,没有错误消息
这个问题在django常见问题解答中,但我已经在那里找到答案,仍然无法通过初始登录屏幕.
我在ubuntu 12.04上使用django 1.4和apache2以及modwsgi.
我已经确认我在admin.py文件中注册了admin ,确保在添加后确认syncdb INSTALLED_APPS.当我输入了错误的密码我DO得到一个错误,所以我的管理员用户进行认证,只是没有在进行管理页面.
我已经尝试过设置SESSION_COOKIE_DOMAIN机器的IP和无.(确认cookie域显示为Chrome中机器的IP)
另外,检查用户是否通过shell进行身份验证:
>>> from django.contrib.auth import authenticate
>>> u = authenticate(username="user", password="pass")
>>> u.is_staff
True
>>> u.is_superuser
True
>>> u.is_active
True
Run Code Online (Sandbox Code Playgroud)
尝试使用IE8和chrome canary登录,两者都会导致返回登录屏幕.
还有别的什么我想念????
settings.py
...
MIDDLEWARE_CLASSES = (
'django.middleware.gzip.GZipMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.transaction.TransactionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.staticfiles',
'django.contrib.gis',
'myapp.main',
)
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_SAVE_EVERY_REQUEST = True
SESSION_COOKIE_AGE = 86400 # …Run Code Online (Sandbox Code Playgroud) Java中是否有办法要求系统控制管理员功能.当然没有这样做:右键单击exe - >以管理员身份运行.
我想要的是来自UAC的框架,如Windows Vista或Windows 7.
或者我从jar中制作exe时要做一些设置?
我正在扩展change_list.html,我需要输出settings.py中定义的变量
如何将该特定变量传递到自定义管理模板上下文?
我想知道用Django Admin中的富文本编辑器替换标准textarea字段的最佳方法吗?
我正在尝试在django admin的list_display中显示图像缩略图,我这样做:
from django.utils.safestring import mark_safe
class PhotoAdmin(admin.ModelAdmin):
fields = ('title', 'image',)
list_display = ('title', '_get_thumbnail',)
def _get_thumbnail(self, obj):
return mark_safe(u'<img src="%s" />' % obj.admin_thumbnail.url)
Run Code Online (Sandbox Code Playgroud)
尽管我将字符串标记为安全,但管理员仍将缩略图显示为转义的html.我究竟做错了什么?