0
我有一個Django模型,它有一個名爲url
的屬性,它在訪問時返回s3上文檔的S3簽名url。登錄URL有過期時間,所以我沒有保存到模型中,它需要在訪問模型時生成。在Django中爲動態生成的url添加字段admin
我想這個動態屬性添加到管理部分,當文件被訪問(但這不是保存到模型中的領域,它是模型上的屬性)
我該怎麼辦呢?
我有一個Django模型,它有一個名爲url
的屬性,它在訪問時返回s3上文檔的S3簽名url。登錄URL有過期時間,所以我沒有保存到模型中,它需要在訪問模型時生成。在Django中爲動態生成的url添加字段admin
我想這個動態屬性添加到管理部分,當文件被訪問(但這不是保存到模型中的領域,它是模型上的屬性)
我該怎麼辦呢?
readonly_fields
屬性的屬性添加到管理員的fields
或fieldsets
屬性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')
它不該s3_url
是字面上的一個屬性,使用@property
裝飾器聲明,或者只是一個可調用的字符。唯一的問題是像short_description
這樣可以自定義行爲的一些可調用屬性與@property
無法完美配合。
這正是我想要做的!謝謝 – josephmisiti 2014-09-04 23:35:55
另外值得注意的是readonly_fields必須在字段之前出現 – aris 2016-11-06 22:53:50