2010-06-15 4 views
3

나는 다음과 같은 문제가있다 :list_display에서 인라인 요소를 표시하는 방법은 무엇입니까?

나는 두 가지 모델을 가지고있다 : Article and Comment, Comments에, 나는 parent = models.ForeignKey (Article)을 가지고있다. 주석은 ArticleAdmin (admin.ModelAdmin) 및 CommentInline (admin.StackedInline)에 인라인되도록 설정했습니다. 내가 원하는 건 기사 목록보기 (list_display에서 선택한 요소)에 대한 것입니다. 사용자가 각 개별 주석을 클릭하여 변경 사항을 볼 필요가 없도록 최신 주석의 미리보기를 표시하고 싶습니다. 이제는 list_display에서 함수를 지정할 수 있다는 것을 알고 있지만 함수에서 쉽게 수행 할 작업을 수행하는 방법을 모르겠습니다.

누구나이 작업을 수행하는 방법에 대한 제안이 있습니까?

도움 주셔서 감사합니다.

답변

3

당신은 함수를 정의하는 길을 가야하는 것입니다 말하는 것처럼 - ModelAdmin 클래스에 사용자 지정 메서드 매개 변수로 객체를 사용하여 최신 의견의 문자열 표현을 반환합니다

class ArticleAdmin(admin.ModelAdmin): 
    list_display = ('name', 'latest_comments') 

    def latest_comments(self, obj): 
     return '<br/>'.join(c.comment for c in obj.comment_set.order_by('-date')[:3]) 
    latest_comments.allow_tags = True 

이 소요가 각 기사에 대한 마지막 3 개의 주석은 'date'필드로 정렬되고 각각의 행에 하나씩 표시되도록 <br> 태그로 구분 된 각각의 comment 필드를 표시합니다.

관련 문제