【问题标题】:Customizing Django form widgets? - Django自定义 Django 表单小部件? - 姜戈
【发布时间】:2010-05-04 15:52:33
【问题描述】:

我这里有个小问题!


我发现以下是全球公认的自定义 Django 管理字段的方法。

from django import forms
from django.utils.safestring import mark_safe

class AdminImageWidget(forms.FileInput):
    """
    A ImageField Widget for admin that shows a thumbnail.
    """

    def __init__(self, attrs={}):
        super(AdminImageWidget, self).__init__(attrs)

    def render(self, name, value, attrs=None):
        output = []
        if value and hasattr(value, "url"):
            output.append(('<a target="_blank" href="%s">'
                           '<img src="%s" style="height: 28px;" /></a> '
                           % (value.url, value.url)))
        output.append(super(AdminImageWidget, self).render(name, value, attrs))
        return mark_safe(u''.join(output))

我需要访问模型的其他字段才能决定如何显示该字段!

例如:

如果我要跟踪一个值,我们称之为“sales”。

如果我希望根据其他字段自定义销售额的显示方式,我们将其称为“转化率”。

在覆盖销售小部件时,我没有明显的方法可以访问 转化率 字段!


任何解决此问题的想法都将受到高度赞赏!谢谢:)

【问题讨论】:

    标签: python django django-models django-admin field


    【解决方案1】:

    你是正确的,小部件本身是独立的。对于做一些更复杂的事情,我的第一个想法是提供一个自定义的管理模板来做你想做的事,或者传入一段 javascript 代码来处理相互关联的字段(很像预填充字段的工作方式)。

    【讨论】:

      【解决方案2】:

      您可能想使用custom form for the admin

      【讨论】:

        猜你喜欢
        • 2018-02-01
        • 2012-06-09
        • 2013-04-03
        • 2011-06-12
        • 2012-07-18
        • 2012-12-06
        • 1970-01-01
        • 2020-08-17
        • 2011-07-23
        相关资源
        最近更新 更多