2011-04-14 5 views
4

다른 모델의 Django 관리자 변경/추가 페이지에 표시 할 모델의 속성을 가져 오려고합니다. 여기 내 모델은 다음과 같습니다 Django에서 ForeignKey 데이터를 표시합니다. 변경/추가 페이지

class Download(model.Model): 
    task = models.ForeignKey('Task') 

class Task(model.Model): 
    added_at = models.DateTimeField(...) 

는 주변의 외래 키를 전환 할 수 없습니다, 그래서를 인라인을 사용할 수 없습니다, 물론 fields = ('task__added_at',) 중 하나 여기에 작동하지 않습니다.

이 같은 표준 접근 방식은 무엇입니까? (또는 내가 관리자를 너무 멀리 잡아 당겼습니까?)

이미 사용자 지정 템플릿을 사용하고 있으므로 답변을 얻을 수 있습니다. 그러나 관리자 수준에서이 작업을 수행하는 것이 좋습니다. 당신이 그것을 편집 할 필요가없는 경우

+0

당신이 관리자에 달성하기 위해 노력하고있는 워크 플로우 주위에 좀 더 컨텍스트를 제공하시기 바랍니다 수 있습니까? 게시물에서 다운로드를 편집하는 것처럼 들리며 작업 모델에 대한 액세스 권한이 필요합니까? 맞습니까? – Brandon

+0

사용자가 지연된 작업으로 생성되어 전자 메일로 전송되는 다운로드를 요청합니다 (Windows에서이므로 Celeryd는 더 이상 불쌍합니다). –

+0

좋아, 외장 키 필드로 무엇을해야합니까? – Brandon

답변

9

, 당신은 읽기 전용 필드로 표시 할 수 있습니다

class DownloadAdmin(admin.ModelAdmin): 
    readonly_fields = ('task_added_at',) 

    def task_added_at(self, obj): 
     return obj.task.added_at 
+0

readonly_fields는 필드의 하위 집합이어야하므로 필드에 함수를 추가 할 수 없으므로 작동하지 않습니다. –

+0

무슨 뜻인지 모르겠다. 이것은 작동합니다 - [문서] (http://docs.djangoproject.com/en/1.3/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields)를 참조하십시오. –

+0

필드 세트에서도 작동합니다. 명성. –

관련 문제