1
我可以在變更表單管理頁面上插入(跛腳)靜態文本,但我真的很喜歡它使用當前編輯對象的上下文!定製django admin ChangeForm模板/添加自定義內容
例如,我想在MyObject的格式上改變一個URL來包含來自一個ForeignKey連接對象的ID(obj
)作爲鏈接。
我的管理對象:
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)
我的模板templates/admin/my_change_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 %}
的{{adminform.data.obj.id}}
通話顯然是行不通的,但我想類似的規定。
如何從當前對象中將動態上下文插入到admin更改表單中?
這可能是有益的,但不能告訴。 'get_dynamic_info()'假設只是任意地執行數據庫查詢?這不是我想要的。我只想要那些顯然必須可用的對象的數據,因爲它是一個改變形式(意味着對象已經在數據庫中)。另外,它將作爲'{{osm_data}}'在模板中訪問?不清楚你在這裏建議的實際解決方案。 – lollercoaster
您可以訪問正在呈現更改視圖的'object_id'。因此,您可以查詢該對象並獲取其相關字段ID並將其作爲'extra_context'發送。是的,你可以在模板中使用這些額外的上下文作爲'{{osm_data}}'。 – Sagar
可以確認此作品,謝謝! – lollercoaster