2013-03-08 62 views
10

我正在爲我的網站使用Django管理員,我想定製一個字段在我的某個模型的list_display頁面上的顯示方式。使django管理員在列表結果中顯示不超過100個字符

我的一個模型都有一個TextField,可以是300個字符

當模型在Django管理上市,我想限制在100個字符顯示在管理列表中顯示的文本的長度。

有沒有辦法在Django Admin類中做到這一點?

admin.py:

class ApplicationAdmin(admin.ModelAdmin): 
    model = Application 
    list_display = [ "title1", "title2"] 

models.py:

class Application(models.Model): 
    title1 = models.TextField(max_length=300) 
    title2 = models.TextField(max_length=300) 
+1

這個問題肯定是「真實」,並應重新開放。不僅目前的形式很容易回答,它允許在廣泛的編程和開發技能集中提供許多不同的解決方案,具體取決於需要DRY和靈活的解決方案。這不是模棱兩可的;這僅僅是問題的本質。 – DylanYoung 2017-10-27 21:55:45

回答

26

您可以顯示在你的ModelAdmin類返回的字段值的刪減版本的屬性。利用內置的模板過濾器可以輕鬆實現。

from django.template.defaultfilters import truncatechars # or truncatewords 

class Foo(models.Model): 
    description = models.TextField() 

    @property 
    def short_description(self): 
     return truncatechars(self.description, 100) 

class FooAdmin(admin.ModelAdmin): 
    list_display = ['short_description'] 
+0

感謝布蘭登,我沒有先看到這個答案 – user1865341 2013-03-08 03:01:31

+0

不要生氣,如果他們選擇我的答案。不要擔心你會投票,你需要的比我更多。如果我是新手,對不起truncatechars。我真的不知道這個功能。我不是專家,知道所有關於Django的:) – catherine 2013-03-08 03:05:36

+0

有沒有什麼辦法可以在列表顯示中傳遞像100這樣的參數 – user1865341 2013-03-08 03:06:11

相關問題