如何解决将自定义按钮或标签添加到django admin
|| 我想将一些html元素(按钮,\“ a \”标记等)添加到django管理页面。我该怎么做?请帮忙。解决方法
不确定要在哪里添加内容,但这是我在SO上其他地方找到的用于更改FileField的HTML的解决方案(在我的情况下,我想在ImageField中显示当前图像)。
换句话说,您可以制作一个小部件来修改要定制的字段的html:
# Widget that modifies the output of a FileField
class OutputWidget(AdminFileWidget):
# Overloaded django magic
def render(self,name,value,attrs=None):
output = []
# This is the place where we edit the output
if value and getattr(value,\"url\",None):
image_url = value.url
output.append(u\' <a href=\"%s\" target=\"_blank\"><img src=\"%s\" alt=\"%s\" /></a>\' % (image_url,image_url,image_url))
output.append(super(AdminFileWidget,self).render(name,attrs))
return mark_safe(u\'\'.join(output))
# ModelAdmin class that is applied to the model
class MyModelSettings(admin.ModelAdmin):
# Overloaded django magic
def formfield_for_dbfield(self,db_field,**kwargs):
# Look for the field we want to edit and register the widget with it
if db_field.name == \'nameOfFieldIWantToEdit\':
request = kwargs.pop(\"request\",None)
kwargs[\'widget\'] = OutputWidget
return db_field.formfield(**kwargs)
return super(MyModelSettings,self).formfield_for_dbfield(db_field,**kwargs)
# Register my overloaded settings with the model
admin.site.register(MyModel,MyModelSettings)
该代码进入admin.py,在其中注册模型。
, 从文档:
Django管理网站
自定义Django管理界面
, 我从上面使用了Omokoli的解决方案,但是为了使该字段使用我做过的自定义小部件:
类MyModelAdminForm(forms.ModelForm):
类Meta:
型号= get_model(\'myapp \',\'mymodel \')
小部件= {
\'original_link \':OutputWidget,
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。