django
  • django-models
  • django-admin
  • django-forms
  • 2010-05-11 164 views 2 likes 
    2

    我想要做的是在模型的字段名稱上有一個鏈接。所以當我使用管理界面填寫表單時,我可以訪問一些信息。Django使模型字段名稱鏈接

    我知道這並不工作,但顯示了我想做的事情

    class A(models.Model): 
        item_type = models.CharField(max_length=100, choices=ITEMTYPE_CHOICES, verbose_name="<a href='http://www.quackit.com/html/codes'>Item Type</a>") 
    

    其他選項將是把未來的描述到外地。

    林甚至不知道從哪裏開始。

    +0

    我真的不建議做這樣的事情。模型文件中的HTML代碼是一個糟糕的主意,因爲您希望將兩者分開。相反,您應該在模板中創建鏈接。如果你想在模型定義中做到這一點,你認爲贏得什麼? – Jens 2010-05-11 20:10:41

    回答

    0

    這是真的應該在模板中處理的東西。

    這裏是去了解的一種方式......

    您可以創建一個名爲「說明」完全是另外一個模型,然後進行「項目類型」爲在該表中的條目。

    從那裏,你可以檢查出固定鏈接decorator http://docs.djangoproject.com/en/dev/ref/models/instances/#the-permalink-decorator這將允許你創建固定鏈接到任何給定的「描述」對象。

    最後,請查看http://docs.djangoproject.com/en/1.1/ref/contrib/admin/#overriding-admin-templates以修改管理模板。在編輯class A對象的位置,您可以將錨點插入該描述對象的永久鏈接。

    你想要做的是絕對有可能的。你只需要重新思考。

    祝你好運!

    1

    不幸的是,這比第一眼看起來要困難得多。在您定義verbose_name的時間點和admin/includes/fieldset.html模板中的{{ field.label_tag }}時間之間,該字符串會發生大量操作。基本上不管你做什麼,字符串都被強制回到unicode並且(最終)在label_tag中逃脫。試圖使用mark_safeSafeUnicode或甚至|safe模板過濾器都不能防止發生的轉義。

    這是什麼意思是,你有三種選擇:

    1. 在Django的形式,內部黑客通過一劫攜帶SafeUnicode串一路的很多

    2. admin/includes/fieldset.html模板中手動構建字段的標籤標籤。請注意,id,for,class等標籤上有很多重要屬性。

    3. 創建一個模板過濾器,用於分析標籤標籤中的字符串並將其轉換爲鏈接。

    選項三可能實際上是最簡單的,如果你對任何正則表達式都有好處。

    相關問題