【问题标题】:Group models from different app/object into one Admin block将来自不同应用程序/对象的模型分组到一个管理块中
【发布时间】:2012-05-20 14:59:32
【问题描述】:

是否可以将来自不同应用的模型分组到 1 个管理块中?

比如我的结构是

project/
  review/
    models.py -  class Review(models.Model):
  followers/
    models.py -  class Followers(models.Model):
    admin.py 

followers/admin.py,我打电话

 admin.site.register(Followers)
 admin.site.register(Review)

这是为了将它们分组到 1 个管理块中,以便管理员轻松查找。

我试过了,但 Review 模型没有出现在 Followers 管理块中,我找不到有关此的文档。

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    Django Admin 通过 Model._meta.app_label 定义的应用程序将模型分组到管理块。因此,在followers/admin.py 中注册Review 仍然可以将其发送到应用程序review

    所以制作Reviewproxy model 并将其放入“评论”应用中

    class ProxyReview(Review):
        class Meta:
            proxy = True    
            # If you're define ProxyReview inside review/models.py,
            #  its app_label is set to 'review' automatically.
            # Or else comment out following line to specify it explicitly               
            # app_label = 'review'
    
            # set following lines to display ProxyReview as Review
            # verbose_name = Review._meta.verbose_name
            # verbose_name_plural = Review._meta.verbose_name_plural
    
    
    # in admin.py
    admin.site.register(ProxyReview)
    

    另外,您可以将FollowersReview 放入同一个应用程序或为它们设置相同的app_label

    自定义管理视图或使用第 3 部分仪表板也可以实现目标。

    【讨论】:

    • 即使对于 django 3 也能正常工作。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多