程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我可以在django admin中使list_filter只显示引用的ForeignKey吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决我可以在django admin中使list_filter只显示引用的ForeignKey吗??

开发过程中遇到我可以在django admin中使list_filter只显示引用的ForeignKey吗?的问题如何解决?下面主要结合日常开发的经验,给出你关于我可以在django admin中使list_filter只显示引用的ForeignKey吗?的解决方法建议,希望对你解决我可以在django admin中使list_filter只显示引用的ForeignKey吗?有所启发或帮助;

从Django 1.8开始,有一个内置的RelatedOnlyFIEldListFilter,你可以用来显示相关的国家。

class MyModeladmin(admin.Modeladmin):
    List_display = ('name', 'country',)
    List_filter = (
        ('country', admin.RelatedOnlyFIEldListFilter),
    )

对于Django 1.4-1.7,List_filter允许你使用的子类SimpleListFilter。应该可以创建一个简单的列表过滤器,列出所需的值。

如果无法从Django 1.3升级,则需要使用内部未FilterSpec公开的API。Django admin中的堆栈溢出问题自定义过滤器应为你指明正确的方向。

解决方法

我有一个django应用程序,它具有两个这样的模型:

class MyModel(models.Model):
    name = models.CharField()
    country = models.ForeignKey('Country')

class Country(models.Model):
    code2 = models.CharField(max_length=2,primary_key=True)
    name = models.CharField()

admin类MyModel如下所示:

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('name','country',)
    list_filter = ('country',)
admin.site.register(models.MyModel,MyModelAdmin)

Country表包含约250个国家。在某些MyModel情况下,实际上仅引用了少数几个国家。

问题是django管理员中的列表过滤器在过滤器面板中列出了所有国家。列出所有国家/地区(而不仅仅是实例引用的国家/地区)在这种情况下非常不利于使用列表过滤器的目的。

是否有一些仅MyModel在列表过滤器中显示作为参考的国家?(我使用Django 1.3。)

大佬总结

以上是大佬教程为你收集整理的我可以在django admin中使list_filter只显示引用的ForeignKey吗?全部内容,希望文章能够帮你解决我可以在django admin中使list_filter只显示引用的ForeignKey吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: