Настройка виджетов формы Django? - Джанго - PullRequest
2 голосов
/ 04 мая 2010

У меня тут небольшая проблема!


Я обнаружил следующее как общепринятый метод настройки поля администратора 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 ».

Если я хочу настроить отображение продаж в зависимости от другого поля, назовем его « коэффициент конверсии ».

У меня нет очевидного способа доступа к полю коэффициент конверсии при переопределении виджета продаж!


Буду очень признателен за любые идеи, чтобы обойти это! Спасибо:)

Ответы [ 2 ]

1 голос
/ 05 мая 2010

вы, вероятно, хотите использовать пользовательскую форму для администратора

1 голос
/ 04 мая 2010

Вы правы в том, что сами виджеты независимы. Моя первая мысль сделать что-то более сложное - это предоставить пользовательский шаблон администратора, который делает то, что вы хотите, или передать фрагмент кода javascript для обработки взаимосвязанных полей (так же, как работают предварительно заполненные поля).

...