我想将名为“---------”(BLANK_CHOICE_DASH
)的默认选定操作更改为另一个特定操作。有没有更好的方式来实现这一点,而不是添加一些JavaScript代码,将重载加载时间的行动?设置Django管理员默认操作
0
A
回答
0
我想你可以覆盖ModelAdmin
中的get_action_choices()
方法。
class MyModelAdmin(admin.ModelAdmin):
def get_action_choices(self, request, default_choices=BLANK_CHOICE_DASH):
"""
Return a list of choices for use in a form object. Each choice is a
tuple (name, description).
"""
choices = [] + default_choices
for func, name, description in six.itervalues(self.get_actions(request)):
choice = (name, description % model_format_dict(self.opts))
choices.append(choice)
return choices
1
1.Override的get_action_choices()
方法在ModelAdmin
,清除默认空白选择和重新排序列表。
class YourModelAdmin(ModelAdmin):
def get_action_choices(self, request):
choices = super(DocumentAdmin, self).get_action_choices(request)
# choices is a list, just change it.
# the first is the BLANK_CHOICE_DASH
choices.pop(0)
# do something to change the list order
# the first one in list will be default option
choices.reverse()
return choices
2,专业action.Override ModelAdmin.changelist_view
,使用extra_context
更新action_form
ChoiceField.initial
用于设置默认选择的选项。 所以如果你的动作名称是“print_it”,你可以这样做。
class YourModelAdmin(ModelAdmin):
def changelist_view(self,request, **kwargs):
choices = self.get_action_choices(request)
choices.pop(0) # clear default_choices
action_form = self.action_form(auto_id=None)
action_form.fields['action'].choices = choices
action_form.fields['action'].initial = 'print_it'
extra_context = {'action_form': action_form}
return super(DocumentAdmin, self).changelist_view(request, extra_context)
相关问题
- 1. Django中的默认“删除选定”管理员操作
- 2. django管理员操作
- 3. 调整django管理员默认权限
- 4. Django管理员:删除默认链接
- 5. Django python无法将管理员默认设计设置为我的界面
- 6. 让站点管理员管理Django中的默认值
- 7. Django。打印所有管理员操作。
- 8. 默认Django 1.5管理员css不工作
- 9. Django管理员登录不起作用没有默认后端
- 10. 确认后Django管理员操作未执行
- 11. Django的1.10:设置admin.site.site_header并使用默认的管理员登录查看
- 12. 在drupal 6中设置字段的默认值管理员
- 13. SilverStripe - 设置默认的排序在管理员模式
- 14. Django的:如何设置默认语言在管理上登录
- 15. 是elvis操作员,错误处理对于设置默认值是否安全?
- 16. 如何为Django管理员操作设置自定义的queryset类?
- 17. 设置默认值在Django
- 18. Django设置默认日志
- 19. Django设置默认数据
- 20. Django管理员:默认情况下展开所有条目
- 21. 添加默认过滤器到Django管理员
- 22. 在Django中下拉菜单的默认管理员
- 23. 的Django的contrib管理员默认的admin和密码
- 24. Django LFS 0.10没有默认管理员用户
- 25. Django管理员表单和默认值的内联模型
- 26. Magento - 管理员字段的默认值
- 27. 在PApplet上设置默认关闭操作(处理)
- 28. 默认的Django管理表单和FormWizard
- 29. Django默认管理面板安全
- 30. Python/Django - 初始/默认管理页面
[Django的选择栏(默认值)的可能的复制(http://stackoverflow.com/questions/22257622/default-value-for-django-choice-field) – solarissmoke
@solarissmoke:这是不一样的。我希望它在*管理操作*中。 – d33tah
相同的概念应该适用 - 你只需要覆盖相应的管理表单? – solarissmoke