BLOG
Enjoy when you can, and endure when you must.
NOV 21, 2013/Django
使用Grappelli提供的Related Lookups让GenericForeighKey在Admin中更好用

Django中的GenericForeignKey是个非常好的东西,可以方便的实现一个字段关联不同的外键。不过在Django Admin中,GenericForeignKey默认的使用效果很不方便,如下图所示,“响应消息类型”对应的是content_type,“关联消息”对应的是object_id。图中可以看出它不像普通ForeignKey那样可以实现快速查找。

不过很好的是Django-Grappelli中为我们提供了一个Related Lookups并且可以直接用在GenericForeignKey上。

Django-Grappelli是一套Django Admin皮肤,相比原生的样式更为漂亮,并且提供了一些可定制化的拓展功能。我在以前的博客中提到过如何安装,可以点击这里查看。

要想使用Related Lookups,只需在ModelAdmin中加入:

class MyAdmin(admin.ModelAdmin):
    ...
    related_lookup_fields = {
        'generic': [['content_type', 'object_id']],
    }
    ...

刷新Admin页面即可看到效果:

这样不就方便多了!

Grappelli还提供很多有用的特性,有兴趣的话可以参考其文档。

COMMENTS
LEAVE COMMNT