Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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
Python 自定义django管理变更表单模板/添加自定义内容_Python_Django_Django Admin - Fatal编程技术网

Python 自定义django管理变更表单模板/添加自定义内容

Python 自定义django管理变更表单模板/添加自定义内容,python,django,django-admin,Python,Django,Django Admin,我可以在ChangeFormAdmin页面上插入(lame)静态文本,但我真的希望它使用当前正在编辑的对象的上下文 例如,我想在MyObject上设置一个URL格式,以包含ForeignKey连接对象(obj)的ID作为链接 我的管理对象: class MyObjectChangeForm(forms.ModelForm): class Meta: model = MyObject fields = ('field1', 'obj',) class My

我可以在ChangeFormAdmin页面上插入(lame)静态文本,但我真的希望它使用当前正在编辑的对象的上下文

例如,我想在MyObject上设置一个URL格式,以包含ForeignKey连接对象(
obj
)的ID作为链接

我的管理对象:

class MyObjectChangeForm(forms.ModelForm):
    class Meta:
        model = MyObject
        fields = ('field1', 'obj',)

class MyObjectAdmin(admin.ModelAdmin):
    form = MyObjectChangeForm
    list_display = ('field1', 'obj')
    def render_change_form(self, request, context, *args, **kwargs):
        self.change_form_template = 'admin/my_change_form.html'
        extra = {'lame_static_text': "something static",}
        context.update(extra)
        return super(MyObjectAdmin, self).render_change_form(request,
            context, *args, **kwargs)
我的模板
模板/admin/My\u change\u form.html

{% extends "admin/change_form.html" %}

{% block form_top %}
    {{ lame_static_text }}
    <a href="http://example.com/abc/{{ adminform.data.obj.id }}?"/>View Website</a>
{% endblock %}
{%extends“admin/change\u form.html”%}
{%block form_top%}
{{lame_static_text}}
{%endblock%}
{{adminform.data.obj.id}
调用显然不起作用,但我希望类似的东西


如何将当前对象的动态上下文插入管理更改表单?

在中添加额外的上下文


我相信您寻找的神奇变量是“original”,它包含更改表单正在编辑的python对象:

<a href="http://example.com/abc/{{ original.id }}?"/>View Website</a>


这可能会有帮助,但无法判断。
get\u dynamic\u info()?那不是我想要的。我只想要所讨论对象的数据(显然)必须以某种方式可用,因为它是一个变更表单(意味着该对象已经在数据库中)。此外,它将作为
{{osm_data}}
在模板中访问?不清楚您在此建议的实际解决方案。您可以访问更改视图正在为其渲染的
对象\u id
。因此,您可以查询该对象并获取其相关字段id,并将其作为
extra\u context
发送。是的,您可以在模板中使用这些额外的上下文作为
{{{osm_data}}
。天哪,您节省了我这么多时间。这是人们需要的答案。
<a href="http://example.com/abc/{{ original.id }}?"/>View Website</a>