반응형
Django 관리 인터페이스에서 하이퍼 링크가있는 사용자 지정 열을 추가하려면 어떻게합니까?
장고 관리자 인터페이스가 있고 모델 목록에서 필드 값 중 하나를 사용하는 하이퍼 링크가 될 사용자 지정 열을 원합니다. 기본적으로 모델 필드 중 하나는 URL이며 열에 클릭 가능한 하이퍼 링크에 해당 URL이 포함되기를 바랍니다. 이 링크에는 모델 필드의 상대 경로로 앞에 추가 URL이 추가되어야합니다.
ModelAdmin-class에서 메서드를 정의하고 allow_tags
속성을 True
. 이렇게하면 메서드가 열에 표시하기 위해 이스케이프되지 않은 HTML을 반환 할 수 있습니다.
그런 다음 ModelAdmin.list_display 속성에 항목으로 나열하십시오.
예:
class YourModelAdmin(admin.ModelAdmin):
list_display = ('my_url_field',)
def my_url_field(self, obj):
return '<a href="%s%s">%s</a>' % ('http://url-to-prepend.com/', obj.url_field, obj.url_field)
my_url_field.allow_tags = True
my_url_field.short_description = 'Column description'
자세한 내용은 ModelAdmin.list_display에 대한 설명서를 참조하십시오.
format_html
유틸리티를 사용하십시오 . 그러면 매개 변수에서 모든 html이 이스케이프되고 문자열이 템플릿에서 사용하기에 안전한 것으로 표시됩니다. allow_tags
방법 속성은 장고 1.9에서 사용되지.
from django.utils.html import format_html
class MyModelAdmin(admin.ModelAdmin):
list_display = ['show_url', ...]
...
def show_url(self, obj):
return format_html("<a href='http://pre.com{0}'>{0}</a>", obj.url)
이제 관리자 사용자는 다음과 같은 경우에도 안전합니다.
url == '<script>eval(...);</script>'
자세한 내용 은 설명서 를 참조하십시오.
반응형
'programing' 카테고리의 다른 글
원사로 글로벌 패키지를 설치하는 방법 (0) | 2020.12.12 |
---|---|
applicationContext를 여러 파일로 분할 (0) | 2020.12.12 |
다른 패키지의 클래스에 대한 Javadoc 링크 (0) | 2020.12.12 |
모든 데이터베이스 사용자 목록을 가져 오는 방법 (0) | 2020.12.11 |
Spring Boot JUnit 테스트에서 * AutoConfiguration 클래스를 제외하는 방법은 무엇입니까? (0) | 2020.12.11 |