Django 经理是';无法通过帐户实例访问
在使用django organizations为我的项目组织提供服务时,我为帐户制作了一个单独的应用程序 在我假设的基本情况下,使用docs()中的代码,我正在尝试添加它们Django 经理是';无法通过帐户实例访问,django,django-admin,django-authentication,django-organizations,Django,Django Admin,Django Authentication,Django Organizations,在使用django organizations为我的项目组织提供服务时,我为帐户制作了一个单独的应用程序 在我假设的基本情况下,使用docs()中的代码,我正在尝试添加它们 admin.py页面: from accounts import models as AccountModels @admin.register(AccountModels.Account) class AccountAdmin(admin.ModelAdmin): list_display = ['slug',
admin.py
页面:
from accounts import models as AccountModels
@admin.register(AccountModels.Account)
class AccountAdmin(admin.ModelAdmin):
list_display = ['slug', 'active', ]
当试图查看帐户的管理页面上的列表时(位于http://localhost:8000/adminaccounts/account/
)[ps-添加页面呈现,但在保存时会提供相同的错误]:
AttributeError位于/adminaccounts/account/
无法通过帐户实例访问Manager
看看这个错误,我不应该在一个实例上调用它,而应该只在一个类上调用它。但是默认的管理模板是呈现这个页面,所以我对编辑这个页面很谨慎。在管理类中设置继承类时,我是否遗漏了一些内容?(组织用户和组织所有者都正确显示,增加了我的困惑)
这是显示它正在尝试访问实例的堆栈(但我在堆栈跟踪中找不到哪一行是产生错误的行,只是它位于模板块的{{content}
部分):
我在accounts
应用程序中没有任何功能视图或基于类的视图,因此我不知道是否应该覆盖管理器或搜索查询或视图
试图覆盖管理员的视图(?):
@admin.register(Account)
class AccountAdmin(BaseOrganizationAdmin):
def get_queryset(self, request):
qs = super(AccountAdmin, self).get_queryset(request)
print(Account) # <class 'accounts.models.Account'>
print(type(Account)) # <class 'organizations.base.OrgMeta'>
print(type(qs)) # <class 'django.db.models.query.QuerySet'>
return qs # or Account
@admin.register(帐户)
类AccountAdmin(BaseOrganizationAdmin):
def get_queryset(自我,请求):
qs=super(AccountAdmin,self).get\u queryset(请求)
打印(帐户)#
打印(类型(帐户))#
打印(类型(qs))#
返回qs或帐户
这会产生前面的错误,或者类型对象“Account”在代码中没有属性“filter”
,您有:
list\u display=['slug','active',]
但是active
指的是ActiveManager
实例。您希望处于活动状态
,它引用模型字段
from django.db import models
from organizations.abstract import (AbstractOrganization,
AbstractOrganizationUser,
AbstractOrganizationOwner)
class Account(AbstractOrganization):
monthly_subscription = models.IntegerField(default=1000)
class AccountUser(AbstractOrganizationUser):
user_type = models.CharField(max_length=1, default='')
class AccountOwner(AbstractOrganizationOwner):
pass
@admin.register(Account)
class AccountAdmin(BaseOrganizationAdmin):
def get_queryset(self, request):
qs = super(AccountAdmin, self).get_queryset(request)
print(Account) # <class 'accounts.models.Account'>
print(type(Account)) # <class 'organizations.base.OrgMeta'>
print(type(qs)) # <class 'django.db.models.query.QuerySet'>
return qs # or Account