相关疑难解决方法(0)

我可以在django admin中创建list_filter,只显示引用的ForeignKeys吗?

我有一个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()
Run Code Online (Sandbox Code Playgroud)

管理类MyModel看起来像这样:

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('name', 'country',)
    list_filter = ('country',)
admin.site.register(models.MyModel, MyModelAdmin)
Run Code Online (Sandbox Code Playgroud)

Country表包含约250个国家.某些MyModel实例实际上只引用了少数几个国家.

问题是django admin 的列表过滤器列出了过滤器面板中的所有国家/地区.列出所有国家(而不仅仅是那些被实例引用的国家)在这种情况下几乎无法实现列表过滤器的目的.

是否有一些只显示MyModel列表过滤器中作为选项引用的国家/地区?(我使用Django 1.3.)

django django-admin

56
推荐指数
4
解决办法
5万
查看次数

Django admin 显示过滤器取决于其他过滤器

以下是模型示例:

class Books(models.Model):
    ...

class Chapter(models.Model):
    ... 
    book = models.ForeignKey('Books')

class Exercise(models.Model):
    ...
    book = models.ForeignKey('Books')
    chapter = models.ForeignKey('Chapter') 
Run Code Online (Sandbox Code Playgroud)

这是用于练习的 Admin 类:

class ExerciseAdmin(admin.ModelAdmin):
   ...
   list_filter = (('book',admin.RelatedOnlyFieldListFilter),('chapter',admin.RelatedOnlyFieldListFilter))

admin.site.register(Exercise, ExerciseAdmin)
Run Code Online (Sandbox Code Playgroud)

我现在有了过滤器bookchapterfor exercise. 当我点击book过滤器中的a时book,它会相应地显示所有exercises选定的内容book。但是在过滤器列表中chapter,它仍然显示所有的chapters所有books

有没有办法只能显示,在过滤器chapterchaptersbook,我在第一过滤器中选择book?如何?

python django django-admin

6
推荐指数
1
解决办法
1381
查看次数

标签 统计

django ×2

django-admin ×2

python ×1