Как мне ссылаться на базовую модель объекта формы модели Django? - PullRequest
5 голосов
/ 31 августа 2009

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

Я переопределил BaseModelFormSet с помощью нового метода ___init____, например:

class BaseMyFormSet(BaseModelFormSet):
    def __init__(self, *args, **kwargs):
       super(BaseMyFormSet, self).__init__(*args, **kwargs)
    for form in self.forms:
           form.fields['value'].label = ???

Как мне ссылаться на другое поле в модели, чтобы я мог использовать его в качестве значения метки?

(В качестве альтернативы, если есть лучший способ переопределить метку так, как мне нужно, это также будет очень полезно.)

Спасибо.

Ответы [ 2 ]

1 голос
/ 12 сентября 2009

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

LabelField
ValueField

и я хотел отобразить форму, в которой в качестве метки использовалось «LabelField», а пользователь мог обновить «ValueField». Моей первой мыслью было как-то назначить значение «LabelField» в атрибут метки «ValueField».

Вместо этого я в итоге установил для атрибута «disabled» «LabelField» значение true:

form.fields['labelfield'].widget.attrs['disabled'] = True

Это позволяет мне отображать "поле метки", не позволяя пользователям обновлять его. Я могу придумать, по крайней мере, два других способа достижения этой же цели, но это то, что я сейчас использую, учитывая мой уровень знакомства с Джанго и др.

1 голос
/ 31 августа 2009

Я не совсем понимаю вашу цель: вы пытаетесь использовать значение поля для конкретного экземпляра модели или вы просто пытаетесь использовать собственное имя поля модели или атрибут help_text из определения модели?

Полагаю, ты хочешь сделать последнее. Если это так, вы можете получить доступ к информации о модели следующим образом: init метод:

for form in self.forms:
    opts = self.model._meta
    field = opts.get_field("yourfield")
    form.fields['value'].label = field.name

Или

form.fields['value'].label = field.help_text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...