Django将硬编码的href链接添加到管理模型的表单视图页面

时间:2017-12-28 22:31:12

标签: python django django-forms django-admin

在Django的管理面板中,如何将硬编码链接添加到Django模型的表单页面(/ add / page)。这些是永远不会改变的文档链接。我希望每次在表单上显示这些链接作为参考,以便用户确定要输入到字段中的值。

我需要:自定义字段吗?内置场已经?以某种方式修改管理模板?在某处添加帮助函数?

我不是指“更改列表”视图;当您在模型中添加或编辑对象时,我指的是/change//add/页面视图。

add links in Django admin model form

models.py

class DateRange(models.Model):

    date_name = models.CharField(max_length=100)
    adwords_name = models.CharField(max_length=100)
    bingads_name = models.CharField(max_length=100)

    def __str__(self):
        return self.date_name

forms.py

class DateRangeAdminForm(forms.ModelForm):
    class Meta:
        model = DateRange
        fields = '__all__'

admin.py

@admin.register(DateRange)
class DateRangeAdmin(admin.ModelAdmin):
    form = DateRangeAdminForm
    list_display = ['date_name', 'adwords_name', 'bingads_name']

1 个答案:

答案 0 :(得分:1)

扩展change_form.html可行 - 它会在顶部添加链接。

在命名空间模板目录中创建此文件,此处称为“templates-dir”

templates-dir/admin/myapp/daterange/change_form.html

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

{% block object-tools %}
    {{ block.super }}
    <ul>
        <li>
            <a href="https://link1.com">Adwords documentation</a>
        </li>
        <li>
            <a href="https://link2.com">Bing ads documentation</a>
        </li>
    </ul>
{% endblock object-tools %}

相关文档:

https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#overriding-admin-templates

https://docs.djangoproject.com/en/2.0/howto/overriding-templates/#overriding-from-an-app-s-template-directory