如何以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()