django admin选择后过滤数据

时间:2015-05-01 08:57:25

标签: django django-forms django-admin

在管理员中,是否可以从字段中的实时输入中过滤选择:

class ReadtToday(models.Model):
    author =  models.ForeignKey(Authors)                           # field 1)
    book = models.OneToOneField(Books, related_name='bookofday')   # field 2)

现在在1)的管理员和2)得到了所有这些的列表,我应该如何继续得到这种行为:

  

从字段中选择作者1)   autoupdate字段2)仅包含数据的列表   来自当前选定作者的字段1)。

class BooksList(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super(BooksList, self).get_queryset(request)           
        return qs.filter(HowCanIGetAuthor=from_input_of_field_1)

是否可以应用字段1)选择来过滤字段2)使用raw_id_fields

1 个答案:

答案 0 :(得分:0)

最简单的方法是将作者选择实现为提交类型为GET的表单,并检查ModelAdmin类中的request.GET

<form method="GET">
   <select name="author">
        <option>An author</option>
   </select>
</form>

def get_queryset(self, request):
    author = request.GET['author']
    qs = super(BooksList, self).get_queryset(request)           
    return qs.filter(author=author)