장고 관리 인터페이스가 있고 모델 목록에 필드 값 중 하나를 사용하여 하이퍼 링크가 될 사용자 지정 열이 필요합니다. 기본적으로 모델 필드 중 하나는 URL이며 클릭 할 수있는 하이퍼 링크에 해당 URL이 있어야합니다. 이 링크에는 모델 필드의 상대 경로로 URL 앞에 추가 URL이 있어야합니다.django 관리 인터페이스에 하이퍼 링크가있는 사용자 정의 열을 추가하려면 어떻게합니까?
답변
ModelAdmin 클래스에 메소드를 정의하고 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 설명서를 참조하십시오.
장고 관리자가 자동으로 URL을 하이퍼 링크로 바꿀 것이므로 실제로 요즘에는 'a' 태그가 필요 없다는 것을 알았습니다. 나는 일하는 PC가 아니기 때문에 틀릴 수도있다. 필자의 경우 allow_tags를 설정할 필요가 없었다. 내 admin 모델과는 반대로 내 모델에'get_url()'함수를 만들었지 만 이것은 매우 사소한 일이다. 그러나,'target = _blank'라는 새로운 윈도우에서 링크를 열고 싶다면 당신의 방법이 가장 좋습니다 - 이것이 도움이되기를 바랍니다. –
format_html
유틸리티를 사용하십시오. 이렇게하면 매개 변수에서 html을 이스케이프하고 템플릿에서 사용하기에 안전하다고 문자열을 표시합니다. allow_tags
메소드 속성은 Django 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>'
더 많은 정보를 원하시면 the documentation를 참조하십시오.
- 1. 배열에 행과 열을 추가하려면 어떻게합니까?
- 2. 도구 상자에 사용자 정의 컨트롤을 추가하려면 어떻게합니까?
- 3. rails3보기에 사용자 정의 javascript를 추가하려면 어떻게합니까?
- 4. 하이퍼 링크가있는 UITableViewCell
- 5. 하이퍼 링크가있는 동적 테이블
- 6. 행과 열을 NUMPY 배열에 추가하려면 어떻게합니까?
- 7. django-nonrel의 django 등록 관리 인터페이스에 등록 프로필 나열
- 8. 하이퍼 링크가있는 새 텍스트를 CSS의 페이지에 삽입하려면 어떻게합니까?
- 9. iphone 피드 유형 하이퍼 링크가있는 텍스트
- 10. 하이퍼 링크가있는 레일에서 POST 요청하기
- 11. Silverlight의 하이퍼 링크가있는 TreeView 메뉴
- 12. Silverlight 탐색 프레임에 사용자 지정 전환을 추가하려면 어떻게합니까?
- 13. WordPress 관리 영역에 게시물 이외의 컨텐츠 유형을 추가하려면 어떻게합니까?
- 14. 로컬 CPAN 미러에 사용자 정의 모듈 배포를 추가하려면 어떻게합니까?
- 15. ASP.Net 사용자 정의 날짜 컨트롤에 스타일 특성을 추가하려면 어떻게합니까?
- 16. Drupal의 다른 모듈에있는 폼에 사용자 정의 테이블을 추가하려면 어떻게합니까?
- 17. drupal 7에 사용자 정의 테마 기능을 추가하려면 어떻게합니까?
- 18. Apex Salesforce 페이지에 사용자 정의 textinput 필드를 추가하려면 어떻게합니까?
- 19. Qt-Creator에서 사용자 정의 빌드 단계를 추가하려면 어떻게합니까?
- 20. 선 코딩에 사용자 정의 스 니펫을 추가하려면 어떻게합니까?
- 21. 장고 관리 템플릿 사용자 정의
- 22. 내 확인 이메일에 하이퍼 링크가있는 Hotmail 문제
- 23. Sharepoint 사용자 정의 열과 기본 열을 구분합니다.
- 24. django-comments 사용자 정의
- 25. django 사용자 정의 명령
- 26. 사용자 정의 Django 양식
- 27. 사용자 정의 Django 저장소
- 28. 사용자 인터럽트를 무한 루프에 추가하려면 어떻게합니까?
- 29. 모델에 사용자 정의보기 + 컨트롤러를 추가하려면 어떻게합니까?
- 30. Django 유닛 테스트를 사용자 정의 관리 명령에서 실행하십시오.
[Django 관리자의 필드에 클릭 가능한 링크를 추가하는 방법] (http://stackoverflow.com/questions/1949248/how-to-add-clickable-links-to-a-field-in) -django-admin) – Louis