Подтвердить что ты не робот

Групповые модели из разных приложений/объектов в один блок администратора

Можно ли группировать модели из разных приложений в 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 admin, и я не мог найти документацию об этом.

4b9b3361

Ответ 1

Группы администратора Django Модели для блока администрирования с помощью своих приложений, которые определяются Model._meta.app_label. Таким образом, регистрация Review в followers/admin.py по-прежнему попадает в приложение Review.

Итак, создайте прокси-модель Review и поместите ее в приложение "review"

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)

Кроме того, вы можете поместить Followers и Review в одно и то же приложение или установить для них те же app_label.

Настроить представление администратора или использовать панель инструментов третьей части также может достичь цели.