2014-09-04 4 views
0

url이라는 속성이있는 장고 모델을 가지고 있습니다. 액세스 할 때 s3에서 문서의 S3 서명 URL을 반환합니다. 서명 URL에는 만료일이 있으므로 모델에 저장하지 않으므로 모델에 액세스 할 때 생성해야합니다.Django에서 동적으로 생성 된 URL에 대한 필드 추가 admin

내가 문서에 액세스 할 때 관리자 섹션이 동적 속성을 추가 할

내가 이걸 어떻게해야합니까

(하지만이 모델에 저장된 필드가 아니라, 모델의 속성이다)? (만약 당신이 좋아하면, 관리자 또는)

답변

2
  1. 관리자의 fields 또는 fieldsets 속성에 속성을 추가
  2. 은 관리자
  3. readonly_fields 속성에 속성을 추가 모델에 당신의 재산을 선언

EG :

class MyModel(models.Model): 
    # fields here 

    def s3_url(self): 
     return ... # some calculated URL 

class MyAdmin(admin.Admin): 
    readonly_fields = ('s3_url',) 
    fields = (..., 's3_url') 

그것은 shouldn s3_url이 문자 그대로의 속성인지, @property 데코레이터를 사용하여 선언되는지 아니면 단지 호출 가능인지 여부를 결정하지 마십시오. 유일한 catch는 @property으로 동작을 사용자 정의 할 수있는 short_description과 같은 호출 가능 속성의 일부가 완벽하게 작동하지 않는다는 것입니다.

+0

정확히 내가하려고했던 것입니다! 감사합니다. – josephmisiti

+0

readonly_fields는 필드 앞에 와야합니다. – aris

관련 문제