#python #django #django-models #django-forms #django-admin
#python #django #django-модели #django-forms #django-admin
Вопрос:
Я пытаюсь отобразить некоторые данные в моем Django admin ReadOnlyFields
, но я не могу отобразить, я хочу отобразить emailid
и verify_emailid
в той же строке в полях, я могу сделать это с помощью fieldset
, но он также отображает ярлык, пожалуйста, дайте мне знать, как я могу отобразить данные без таблицы.
Вот мой admin.py
файл…
class MyModelAdmin(ReadOnlyAdminMixin, CustomModelAdmin):
fields = (('emailid','verify_emailid),'mobilenumber','type')
здесь emailid
и verify_emailid
отображаются в одной строке, но проблема заключается в verify_emailid
отображаемой метке, и мне не нужна метка verify_emailid
, пожалуйста, дайте мне знать, как я могу удалить verify_emailid
метку…
Ответ №1:
Если вы хотите полностью контролировать текст для определенной строки, вы можете добавить метод для управления этой строкой, а затем добавить этот метод в качестве поля только для чтения:
Решение
from django.utils.html import format_html
class MyModelAdmin(ReadOnlyAdminMixin, CustomModelAdmin):
fields = ('my_custom_line','mobilenumber','type')
def my_custom_line(self, instance):
return format_html('<p>{} {}</p>', instance.emailid, instance.verify_emailid)
Как работает решение
Любой метод в ModelAdmin
классе, который возвращает некоторый текст, может использоваться в качестве поля только для чтения. Вы можете прочитать больше об этом в документах.
format_html
это просто безопасный способ вставки html, чтобы избежать различных атак. Значения, перечисленные после html, вставляются в html, как это обычно происходит. Вы можете отредактировать эту строку в любом случае, чтобы получить желаемый эффект. Вы можете прочитать об этом здесь.