Django 管理视图中的用户相关属性
Django==1.10.2 正在尝试将管理员视图中的Django 管理视图中的用户相关属性,django,Django,Django==1.10.2 正在尝试将管理员视图中的组成员相关属性用于模型: from django.utils.translation import ugettext as _ from django.contrib.auth.models import AbstractUser from django.db import models class User(AbstractUser): group = models.ForeignKey( 'Group',
组成员相关属性用于模型:
from django.utils.translation import ugettext as _
from django.contrib.auth.models import AbstractUser
from django.db import models
class User(AbstractUser):
group = models.ForeignKey(
'Group',
verbose_name=_('Groupe'),
related_name='members',
blank=True,
null=True,
)
class Group(models.Model):
name = models.CharField(
max_length=255,
unique=True,
verbose_name=_('Nom'),
error_messages={
'unique': _('Ce nom est déjà utilisée.'),
},
)
creator = models.ForeignKey(
User,
related_name='created_groups',
blank=False,
null=False,
)
def __str__(self):
return self.name
管理员视图:
from django.contrib import admin
from meal.models import Group, User
class GroupAdmin(admin.ModelAdmin):
fields = ('name', 'members')
list_display = ('name', 'members')
search_fields = (
'name',
)
class UserAdmin(admin.ModelAdmin):
fields = ('email', 'last_name', 'first_name', 'group')
list_display = ('email', 'last_name', 'first_name', 'group')
search_fields = (
'username',
'email',
'first_name',
'last_name',
)
admin.site.register(Group, GroupAdmin)
admin.site.register(User, UserAdmin)
但是管理员视图引发错误:
位于/admin/mean/group/“manager”的键错误
全迹
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/meal/group/
Django Version: 1.10.2
Python Version: 3.5.2
Installed Applications:
['django.contrib.sites',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'meal',
'debug_toolbar',
'bootstrap3',
'allauth',
'allauth.account',
'allauth.socialaccount',
'django_extensions']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware']
Template error:
In template /home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/contrib/admin/templates/admin/change_list.html, error at line 82
manager 72 : {% endif %}
73 : {% endblock %}
74 :
75 : <form id="changelist-form" method="post"{% if cl.formset.is_multipart %} enctype="multipart/form-data"{% endif %} novalidate>{% csrf_token %}
76 : {% if cl.formset %}
77 : <div>{{ cl.formset.management_form }}</div>
78 : {% endif %}
79 :
80 : {% block result_list %}
81 : {% if action_form and actions_on_top and cl.show_admin_actions %}{% admin_actions %}{% endif %}
82 : {% result_list cl %}
83 : {% if action_form and actions_on_bottom and cl.show_admin_actions %}{% admin_actions %}{% endif %}
84 : {% endblock %}
85 : {% block pagination %}{% pagination cl %}{% endblock %}
86 : </form>
87 : </div>
88 : </div>
89 : {% endblock %}
90 :
Traceback:
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/contrib/admin/utils.py" in lookup_field
274. f = _get_non_gfk_field(opts, name)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/contrib/admin/utils.py" in _get_non_gfk_field
312. raise FieldDoesNotExist()
During handling of the above exception (), another exception occurred:
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
39. response = get_response(request)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
217. response = self.process_exception_by_middleware(e, request)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
215. response = response.render()
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/response.py" in render
109. self.content = self.rendered_content
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/response.py" in rendered_content
86. content = template.render(context, self._request)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/backends/django.py" in render
66. return self.template.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render
208. return self._render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/test/utils.py" in instrumented_test_render
94. return self.nodelist.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/loader_tags.py" in render
174. return compiled_parent._render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/test/utils.py" in instrumented_test_render
94. return self.nodelist.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/loader_tags.py" in render
174. return compiled_parent._render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/test/utils.py" in instrumented_test_render
94. return self.nodelist.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/loader_tags.py" in render
70. result = block.nodelist.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/loader_tags.py" in render
70. result = block.nodelist.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render
994. bit = node.render_annotated(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/base.py" in render_annotated
961. return self.render(context)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/template/library.py" in render
225. _dict = self.func(*resolved_args, **resolved_kwargs)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/contrib/admin/templatetags/admin_list.py" in result_list
339. 'results': list(results(cl))}
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/contrib/admin/templatetags/admin_list.py" in results
315. yield ResultList(None, items_for_result(cl, res, None))
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/contrib/admin/templatetags/admin_list.py" in __init__
306. super(ResultList, self).__init__(*items)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/contrib/admin/templatetags/admin_list.py" in items_for_result
217. f, attr, value = lookup_field(field_name, result, cl.model_admin)
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/contrib/admin/utils.py" in lookup_field
290. value = attr()
File "/home/bastien/Projects/meal/venv3.5/lib/python3.5/site-packages/django/db/models/fields/related_descriptors.py" in __call__
524. manager = getattr(self.model, kwargs.pop('manager'))
Exception Type: KeyError at /admin/meal/group/
Exception Value: 'manager'
环境:
请求方法:获取
请求URL:http://127.0.0.1:8000/admin/meal/group/
Django版本:1.10.2
Python版本:3.5.2
已安装的应用程序:
['django.contrib.sites',
“django.contrib.admin”,
“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
"饭",,
“调试工具栏”,
“bootstrap3”,
“阿拉斯”,
“allauth.账户”,
“allauth.socialaccount”,
“django_扩展”]
已安装的中间件:
['django.middleware.security.SecurityMiddleware',
“django.contrib.sessions.middleware.SessionMiddleware”,
'django.middleware.common.CommonMiddleware',
“django.middleware.csrf.CsrfViewMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.xFrameOptions中间件',
'调试工具条.中间件.调试工具条中间件']
模板错误:
在template/home/bastien/Projects/fine/venv3.5/lib/python3.5/site-packages/django/contrib/admin/templates/admin/change_list.html中,第82行出现错误
管理器72:{%endif%}
73:{%endblock%}
74 :
75:{%csrf_令牌%}
76:{%if cl.formset%}
77:{{cl.formset.management_form}
78:{%endif%}
79 :
80:{%block result_list%}
81:{%if动作表单和动作在顶部和cl.show行政动作%}{%admin动作%}{%endif%}
82:{%result_list cl%}
83:{%if action_表单和底部的actions_和cl.show_admin_actions%}{%admin_actions%}{%endif%}
84:{%endblock%}
85:{%block分页%}{%pagination cl%}{%endblock%}
86 :
87 :
88 :
89:{%endblock%}
90 :
回溯:
文件“/home/bastien/Projects/fine/venv3.5/lib/python3.5/site packages/django/contrib/admin/utils.py”位于lookup_字段中
274f=\u获取\u非\u gfk\u字段(选项,名称)
文件“/home/bastien/Projects/fine/venv3.5/lib/python3.5/site packages/django/contrib/admin/utils.py”位于非gfk字段中
312raise FIELDOESNOTEXTIST()
在处理上述异常()期间,发生了另一个异常:
文件“/home/bastien/Projects/fine/venv3.5/lib/python3.5/site-packages/django/core/handlers/exception.py”位于内部
39响应=获取响应(请求)
文件“/home/bastien/Projects/fine/venv3.5/lib/python3.5/site packages/django/core/handlers/base.py”在_get_response中
217response=self.process\u异常\u由\u中间件(e,请求)
文件“/home/bastien/Projects/fine/venv3.5/lib/python3.5/site packages/django/core/handlers/base.py”在_get_response中
215response=response.render()
render中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/response.py”
109self.content=自渲染内容
呈现内容中的文件“/home/bastien/Projects/fine/venv3.5/lib/python3.5/site packages/django/template/response.py”
86content=template.render(上下文、self.\u请求)
render中的文件“/home/bastien/Projects/fine/venv3.5/lib/python3.5/site packages/django/template/backends/django.py”
66返回self.template.render(上下文)
render中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/base.py”
208返回self.\u呈现(上下文)
文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/test/utils.py”,在插入指令的测试呈现中
94返回self.nodelist.render(上下文)
render中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/base.py”
994位=节点。带注释的渲染(上下文)
render_注释中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/base.py”
961返回self.render(上下文)
render中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/loader_tags.py”
174返回编译的\u父对象。\u呈现(上下文)
文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/test/utils.py”,在插入指令的测试呈现中
94返回self.nodelist.render(上下文)
render中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/base.py”
994位=节点。带注释的渲染(上下文)
render_注释中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/base.py”
961返回self.render(上下文)
render中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/loader_tags.py”
174返回编译的\u父对象。\u呈现(上下文)
文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/test/utils.py”,在插入指令的测试呈现中
94返回self.nodelist.render(上下文)
render中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/base.py”
994位=节点。带注释的渲染(上下文)
render_注释中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/base.py”
961返回self.render(上下文)
render中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/loader_tags.py”
70结果=block.nodelist.render(上下文)
render中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/base.py”
994位=节点。带注释的渲染(上下文)
render_注释中的文件“/home/bastien/Projects/mean/venv3.5/lib/python3.5/site packages/django/template/base.py”
961返回s