Загрузка шаблона в форму администратора для пользовательских полей

#python #django #model-view-controller #django-admin

#python #django #модель-представление-контроллер #django-admin

Вопрос:

Я узнал, что могу добавить пользовательскую кнопку в свою форму администратора, добавив ее в

     fields = ["connect"]
    readonly_fields = ('connect',)
    
    def connect(self, obj):
      return format_html("<button></button>")

    connect.allow_tags=True
    connect.short_description = ''
 

Однако html, который я хочу добавить connect , выходит из-под контроля. Мне было интересно, есть ли правильный (Django-nic) способ перенести это в шаблон и загрузить и вернуть содержимое шаблона в connect функцию.

Я могу подумать о чтении содержимого файла шаблона ( open('file.html', 'r') ) для чтения содержимого, однако я ищу предложение, которое соответствует стандартам Django (если таковые имеются).

PS Я также попытался создать представление для получения HTML-содержимого файла connect, но это по какой-то причине не работает и кажется неестественным.

Ответ №1:

 from django.template.loader import render_to_string
...
def connect(self, obj):
    html = render_to_string('file.html')
    return html
 

С file.html помощью в templates каталоге