Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以django格式显示筛选后的选择列表_Django_Django Admin - Fatal编程技术网

如何以django格式显示筛选后的选择列表

如何以django格式显示筛选后的选择列表,django,django-admin,Django,Django Admin,我的问题是:我有一个可以被选为可以参加会议的人的列表。不活动的帐户不应显示在该列表中。我想从可能要选择的用户列表中筛选出这些帐户 这就是代码现在的样子: class StudioMeetingNoteAdmin(admin.ModelAdmin): fields = ('this_is_test',) fieldsets = [ ('Tijden', {'fields': ['meeting_start_time', 'meeting_end_time']}),

我的问题是:我有一个可以被选为可以参加会议的人的列表。不活动的帐户不应显示在该列表中。我想从可能要选择的用户列表中筛选出这些帐户

这就是代码现在的样子:

class StudioMeetingNoteAdmin(admin.ModelAdmin):
    fields = ('this_is_test',)
    fieldsets = [
        ('Tijden', {'fields': ['meeting_start_time', 'meeting_end_time']}),
        ('Wie is de voorzitter/notulist', {'fields': [('chairman', 'secretary')]}),
        ('Opkomst', {'fields': [('attending_persons', 'absent_persons')]}),
    ]
    inlines = [OpeningAndParticularitiesInline, ActionListPointInline, RemarksPriorMeetingInline, IssuesToAddressInline, OurNextMoveInline, QuestionRoundInline]
    list_filter = ['meeting_start_time']
    search_fields = ['meeting_start_time']
    list_display = ('meeting_start_time', 'chairman', 'secretary')
应过滤“出席人员”字段,因此不应显示非活动用户帐户。 我尝试用下面链接中显示的方法替换“出席者”,但这会导致错误

使用
字段集

所以我的问题是:我如何显示一个过滤列表以供选择


谢谢

您应该重写
获取表单
方法:

class StudioMeetingNoteAdmin(admin.ModelAdmin):
    # same as above ...

    def get_form(self, request, obj=None, **kwargs):
        form = super(StudioMeetingNoteAdmin, self).get_form(request, obj, **kwargs)
        form.base_fields['attending_persons'].queryset = User.objects.filter(active=True)
        return form
如报告中所述:

“字段”选项接受与列表显示相同类型的值,只是不接受可调用项。只有在只读_字段中列出模型和模型管理方法时,才会使用它们的名称


这适用于
ModelAdmin.fields
,但同样的规则也适用于
ModelAdmin.fieldset
您应该覆盖
get\u form
方法:

class StudioMeetingNoteAdmin(admin.ModelAdmin):
    # same as above ...

    def get_form(self, request, obj=None, **kwargs):
        form = super(StudioMeetingNoteAdmin, self).get_form(request, obj, **kwargs)
        form.base_fields['attending_persons'].queryset = User.objects.filter(active=True)
        return form
如报告中所述:

“字段”选项接受与列表显示相同类型的值,只是不接受可调用项。只有在只读_字段中列出模型和模型管理方法时,才会使用它们的名称


这适用于
ModelAdmin.fields
,但同样的规则也适用于
ModelAdmin.fieldset

hello Pedram,当我用
.fieldset
尝试你的解决方案时,它说'AttributeError:type object'StudioMeetingNoteForm'没有属性'fieldset',@FAM\u Maurice你应该使用
.fields
而不是
fieldset
(表单有字段)。好的,我把它改为fields,但现在我得到了错误
元组索引必须是整数或切片,不是str
。你知道是什么引起的吗?我发现不应该是
字段
,而应该是
基本字段
。我使用了这个问题中引用的代码作为示例,现在它可以工作了。没有更多的错误,所以我认为你应该调整你的答案@Pedram Parsian这里有另一个解释性链接我忘了提到我有一个“AttributeError:type对象”StudioMeetingNoteForm“没有属性”“字段”错误。根据解释,当您在调用
super()
hello Pedram()之前尝试使用字段时,当我使用
尝试您的解决方案时,会发生这种情况。fieldset
表示“AttributeError:type object”StudioMeetingNoteForm没有属性“fieldset”`@FAM_Maurice您应该使用
。fields
而不是
fieldset
(表单有字段).好的,我把它改成了字段,但现在我得到了错误
元组索引必须是整数或切片,而不是str
。知道是什么原因吗?我发现它不应该是
字段
,而应该是
基本字段
。我用了这个问题中引用的代码作为例子,现在它起作用了。没有更多错误ors,所以我认为你应该调整你的答案@Pedram Parsian这里有另一个解释性链接我忘了提到我有一个“AttributeError:type对象”StudioMeetingNoteForm没有属性“fields”错误。根据解释,在调用
super()