Django Проблема наследования formfield_callback в ModelForms

Я использую Django только пару недель, так что я, возможно, приближаюсь к этим всевозможным ошибкам, но:

У меня есть базовая ModelForm, в которую я положил некоторые шаблонные вещи, чтобы сохранить вещи как можно СУХИЕ, и все мои фактические ModelForms просто подкласс этой базовой формы. Это отлично работает для error _ css _ class = 'error' и required _ class = 'required' , но formfield _ callback = add_css_classes не работает так, как ожидалось.

forms.py

# snippet I found
def add_css_classes(f, **kwargs):
    field = f.formfield(**kwargs)
    if field and 'class' not in field.widget.attrs:
        field.widget.attrs['class'] = '%s' % field.__class__.__name__.lower()
    return field

class BaseForm(forms.ModelForm):
    formfield_callback = add_css_classes  # not working

    error_css_class = 'error'
    required_css_class = 'required'
    class Meta:
        pass

class TimeLogForm(BaseForm):
    # I want the next line to be in the parent class
    # formfield_callback = add_css_classes
    class Meta(BaseForm.Meta):
        model = TimeLog

Конечная цель состоит в том, чтобы использовать некоторые средства выбора даты и времени jquery в формах с классом поля данных/поля времени/поля времени. Я хочу, чтобы все поля даты и времени в приложении использовали один и тот же виджет, поэтому я предпочел сделать это так, чем явно делать это для каждого поля в каждой модели. Добавление дополнительной строки к каждому классу формы - это не такая уж большая сделка, но это просто испортило мне, что я не могу это понять. Копание в источнике джанго показало, что это, вероятно, делает то, что я не понимаю:

django.forms.models

class ModelFormMetaclass(type):
    def __new__(cls, name, bases, attrs):
        formfield_callback = attrs.pop('formfield_callback', None)

Но я не знаю, как __ init __ и __ новые __ все смешанные. В BaseForm я попытался переопределить __ init __ и установить formfield_callback до и после вызова супер, но я предполагаю, что это должно быть где-то в args или kwargs.

-121--1389376- Алгоритм вычисления общей площади, покрываемой набором перекрывающихся сегментов? У меня есть список конечных точек возможных перекрывающихся интервалов, и я хотел бы, чтобы эффективный способ вычисления общей площади, покрываемой k интервалами, для k = 1,2,... (без всяких попарных сравнений)....

У меня есть список конечных точек возможно перекрывающихся интервалов, и я хотел бы, чтобы эффективный способ вычислить общую площадь, охватываемую k интервалов, для k = 1,2,... (без проведения всех попарных сравнений). Или это невозможно?

Например, предположим, что x - список начальных точек, а y - список конечных точек, и что x [i] < y [i] и

x = (1.5, 2, 3, 5)
y = (3, 4, 4, 6)

так, что общая площадь, охватываемая, по меньшей мере, одним интервалом, равна 3,5, а общая площадь, покрываемая, по меньшей мере, двумя, равна 1.

спасибо, ph

5
задан templatetypedef 8 September 2011 в 04:38
поделиться