我有一个应用程序,它使用Django UserProfile来扩展内置的Django User模型.看起来有点像:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
# Local Stuff
image_url_s = models.CharField(max_length=128, blank=True)
image_url_m = models.CharField(max_length=128, blank=True)
# Admin
class Admin: pass
Run Code Online (Sandbox Code Playgroud)
我在我的模型中添加了一个新类:
class Team(models.Model):
name = models.CharField(max_length=128)
manager = models.ForeignKey(User, related_name='manager')
members = models.ManyToManyField(User, blank=True)
Run Code Online (Sandbox Code Playgroud)
它已注册到管理员:
class TeamAdmin(admin.ModelAdmin):
list_display = ('name', 'manager')
admin.site.register(Team, TeamAdmin)
Run Code Online (Sandbox Code Playgroud)
唉,在管理界面中,当我从下拉框中选择管理员,或通过多选字段设置团队成员时,他们按用户数字ID排序.对于我的生活,我无法弄清楚如何对这些进行排序.
我有一个类似的课:
class Meta:
ordering = ['name']
Run Code Online (Sandbox Code Playgroud)
这很棒!但我并不"拥有"这个User课程,当我尝试这个技巧时UserAdmin:
class Meta:
ordering = ['username']
Run Code Online (Sandbox Code Playgroud)
我明白了:
django.core.management.base.CommandError: One or more models did not validate:
events.userprofile: "ordering" refers to …
我有一个Java应用程序.无论如何,我可以判断该进程是否在Windows 7上以管理员权限运行.
在显示表单之前,如何在自动生成的表单中设置字段的初始值以添加Django模型实例?我正在使用Django 1.3.1.
我的模型如下:
class Foo(models.Model):
title = models.CharField(max_length=50)
description = models.TextField()
Run Code Online (Sandbox Code Playgroud)
而目前的管理形式真的没什么特别的
class FooAdmin(admin.ModelAdmin):
ordering = ('title',)
Run Code Online (Sandbox Code Playgroud)
当我使用管理页面添加一个新的Foo实例时,我得到一个很好的表单,其中包含标题和描述的空字段.我想要的是描述字段是通过调用函数获得的模板设置的.
我目前最好的尝试是:
def get_default_content():
return 'this is a template for a Foo description'
class FooAdminForm(django.forms.ModelForm):
class Meta:
model = Foo
def __init__(self, *args, **kwargs):
kwargs['initial'].update({'description': get_default_content()})
super(FooAdminForm, self).__init__(self, *args, **kwargs)
class FooAdmin(admin.ModelAdmin):
ordering = ('title',)
form = FooAdminForm
Run Code Online (Sandbox Code Playgroud)
但如果我尝试这个,我得到这个Django错误:
AttributeError at /admin/bar/foo/add/
'FooForm' object has no attribute 'get'
Request Method: GET
Request URL: http://localhost:8000/admin/bar/foo/add/
Django Version: 1.3.1
Exception Type: AttributeError
Exception Value: 'FooForm' …Run Code Online (Sandbox Code Playgroud) 已安装webmin并想要创建一个非root用户登录,请按照以下步骤操作:
编辑文件/etc/webmin/miniserv.users并为新用户添加一行
anubhav:12ZVLjpihs:0
Run Code Online (Sandbox Code Playgroud)编辑文件 /etc/webmin/webmin.acl并复制root用户的第一行并将其粘贴到同一文件中,将root重命名为新用户并保存文件,因此该文件应该像
root:access privileges
anubhav:accessprivileges.
Run Code Online (Sandbox Code Playgroud)重置新用户密码/usr/share/webmin/changepass.pl /etc/webmin anubhav mypassword.
重新启动webmin,从/etc/init.d/webmin restart
导航到您的webmin页面并登录用户新的用户名和密码.
更新:这可能是版本问题,我应该更新到非稳定版2.0.4吗?
我知道这对某人来说应该是显而易见的,但显然不是.作为文件中的状态
在管理员中,转到商店>配置>设计.
但是只有机器人txt编辑,如下面的屏幕截图所示
我在github #4251上追查这个问题
所有设计配置都转移到了内容 - >设计 - >配置
当我到达那里时,我的自定义主题成功显示,但没有按钮可以更改它,如下所示.没有选项可以从默认的lumia主题更改为空白主题.
只有我吗?或者我是盲人,错过了一些非常明显的东西?我的磁力版是2.0.0
我已成功为普通的MEDIA文件提供媒体文件,但当我尝试提供管理媒体文件时,我失败了.请帮助我找到问题所在,因为我已经尝试解决问题好几个小时已经没有运气了(谷歌搜索也读了django doc关于提供静态文件).
我尝试访问localhost:8000/media/a.gif时的错误如下:
页面未找到:f:\ python25\lib\site-packages\django/contrib/admin/media\a.gif
我将管理媒体文件放在名为"media"的目录中,而我将普通媒体文件放在名为"static"的目录中.我也在Windows上.
以下是我在urls.py中提供普通媒体文件的方式:
# serve static files
from django.conf import settings
if settings.ENVIRONMENT==settings.ENV_DEVELOPMENT:
urlpatterns += patterns("django.views",
url(r"%s(?P<path>.*)$" % settings.MEDIA_URL[1:], "static.serve", {"document_root": settings.MEDIA_ROOT,})
)
Run Code Online (Sandbox Code Playgroud)
还有我的settings.py(只有重要部分):
import project_path
MEDIA_ROOT = project_path.MEDIA.replace('\\','/')
MEDIA_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/media/'
TEMPLATE_DIRS = (
project_path.TEMPLATE.replace('\\','/'),
)
Run Code Online (Sandbox Code Playgroud)
我的project_path.py:
import sys
from os.path import dirname, join
ROOT = dirname(__file__)
APP = join(ROOT, "apps")
TEMPLATE = join(ROOT, "templates")
MEDIA = join(ROOT, "static")
ADMIN_MEDIA = join(ROOT, "media")
Run Code Online (Sandbox Code Playgroud)
任何提示?
或者至少请分享您如何提供管理媒体文件(不更改来自Web服务器的任何文件,但只能通过django源代码)
提前致谢 :)
我正在尝试将自定义参数传递给Django Admin更改列表视图,以便我可以以专门的方式过滤列表.我想基于名为'active_pp'的GET参数在2个字段start_date和end_date上过滤查询集.我已经使过滤正常工作,但我无法传入GET查询参数,该参数指定是否应显示过滤结果或正常结果.
我知道,由于安全性,Django Admin会过滤掉任何与指定模型字段无关的传递给它的查询参数.在找到错误的参数后,管理员将用户重定向到当前视图,但用e = 1替换GET查询参数.我想将我的自定义'active_pp'参数列入白名单,这样页面就不会被重定向,我将能够使用该参数.
以下是带有queryset自定义的admin.py中的ModelAdmin示例.
class FeaduredAdmin(admin.ModelAdmin):
....
def get_changelist(self, request, **kwargs):
from django.contrib.admin.views.main import ChangeList
# Try to get the 'active_pp' query parameter
active_pp = request.GET.get('active_pp',None)
# Define a custom ChangeList class with a custom queryset
class ActiveChangeList(ChangeList):
def get_query_set(self, *args, **kwargs):
now = datetime.datetime.now()
qs = super(ActiveChangeList, self).get_query_set(*args, **kwargs)
return qs.filter((Q(start_date=None) | Q(start_date__lte=now))
& (Q(end_date=None) | Q(end_date__gte=now)))
# use the custom ChangeList class if the parameter exists
if active_pp:
return ActiveChangeList
return ChangeList
Run Code Online (Sandbox Code Playgroud)
有谁知道如何将传递给change_list的自定义GET查询字符串参数列入白名单?
感谢阅读和考虑,乔
更新: …
我想知道如何验证角色(用户只是一种特定类型的角色)是否在PostgreSQL 9.1中设置了密码.
我尝试了命令\dg+,\du+但他们没有向您显示任何密码相关信息.我也使用了以下查询,但它没有帮助,因为它的无差异(我很确定postgresql用户在这种情况下没有设置密码):
SELECT * FROM pg_user;
usename | usesysid | usecreatedb | usesuper | usecatupd | userepl | passwd | valuntil | useconfig
----------+----------+-------------+----------+-----------+---------+----------+----------+-----------
postgres | 10 | t | t | t | t | ******** | |
aef | 16201 | t | t | t | t | ******** | |
Run Code Online (Sandbox Code Playgroud) 我正在使用 virtualenv 以正常方式安装一个新的 Django 项目。我的Python版本是3.7.3,django是2.2.3。
如果我执行 python manage.py runserver,我会收到以下错误:
?: (admin.E408)'django.contrib.auth.middleware.AuthenticationMiddleware' must be in MIDDLEWARE in order to use the admin application.
?: (admin.E409) 'django.contrib.messages.middleware.MessageMiddleware' must be in MIDDLEWARE in order to use the admin application.
?: (admin.E410) 'django.contrib.sessions.middleware.SessionMiddleware' must be in MIDDLEWARE in order to use the admin application.
Run Code Online (Sandbox Code Playgroud)
这是我的settings.py,你可以看到那些中间件在那里。
"""
Django settings for fcc_new project.
Generated by 'django-admin startproject' using Django 1.9.4.
For more information on this file, see
https://docs.djangoproject.com/en/1.9/topics/settings/
For the full list of settings and their …Run Code Online (Sandbox Code Playgroud) 鉴于以下型号
class AnotherModel(models.Model):
n = models.IntegerField()
class MyModel(models.Model):
somefield = models.ForeignKey(AnotherModel)
Run Code Online (Sandbox Code Playgroud)
和管理员
class MyModelAdmin(admin.ModelAdmin):
list_filter = ('somefield',)
Run Code Online (Sandbox Code Playgroud)
如何过滤实例AnotherModel以仅n在管理过滤器中显示具有给定值的实例?
我需要这样的东西:
过滤
通过某个地方
所有
[给定n的AnotherModel实例列表]