【问题标题】:Display SQL results in Django Admin interface在 Django 管理界面中显示 SQL 结果
【发布时间】:2020-06-17 22:28:22
【问题描述】:

我已经设置了一个 Django 管理界面 (django.contrib.admin) 来查看我的 Mysql 数据库中的数据。

我想知道是否可以进行具体的 SQL 查询?

到目前为止,我的所有表都已注册为在 Django Admin Dashboard 中显示,例如:

# Register your models here.
@register(User)
class User(ModelAdmin):
    list_display = ('name', 'city')
    list_filter = ('name',)
    search_fields = ('name',)

@register(Object)
class Object(ModelAdmin):
    list_display = ('name', 'object_description', 'owner', 'acquired_date')
    list_filter = ('name',)

比方说,我想在仪表板中显示一个特定的表格,其中显示了具有适当对象和获取日期的所有用户。我怎么能那样做?或者,更好的是,如何显示来自多个 JOIN 查询的数据?

我看到了 querySet 函数,但是我没有看到任何例子来做这种事情。

感谢您的帮助

【问题讨论】:

    标签: python django django-admin django-admin-actions


    【解决方案1】:

    如果ownerUser 外键,您可以像这样在Object admin list display 中添加用户数据:

    @register(Object)
    class Object(ModelAdmin):
        list_display = ('name', 'object_description', 'owner_name', 'owner_city', 'acquired_date')
        list_filter = ('name',)
    
        def owner_name(self, obj):
            return obj.owner.name
        owner_name.short_description = 'owner_name'
    
        def owner_city(self, obj):
            return obj.owner.city
        owner_city.short_description = 'owner_city'
    

    【讨论】:

      猜你喜欢
      • 2011-01-27
      • 1970-01-01
      • 2017-08-12
      • 2013-07-09
      • 2014-04-26
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      相关资源
      最近更新 更多