django
  • django-models
  • django-admin
  • django-forms
  • 2010-05-11 90 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. 创建一个模板过滤器,用于分析标签标签中的字符串并将其转换为链接。

    选项三可能实际上是最简单的,如果你对任何正则表达式都有好处。

    相关问题