Несколько текстовое поле и флажок на основе значений в базе данных (Джанго) - PullRequest
1 голос
/ 13 мая 2011

У меня есть модель, которая выглядит примерно так

ID, имя, isValue, значение

Я хочу, чтобы логика заключалась в следующем:

если isValue равно false, предоставить пользователю текстовое поле, чтобы он мог его заполнить,

иначе, предоставьте пользователю флажок

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

Просто для начала я не уверен, возможно ли передать объекты (isValue = false) в виджет-флажок и передать объекты (isValue = True) в виджет текстового поля, а затем отобразить его на мой шаблон, просто не знаю как. Я сделал что-то подобное, чтобы отделить объекты. Поэтому я хотел отобразить все 13 записей (например, в этой таблице 13 записей) с его именем и флажком / текстовым полем на основе isValue.

checkboxx = []
textboxx  = []

items = Items.objects.all()
for i in items:
       if i.isValue == False:
          checkboxx.append(i)
       else
          textboxx.append(i)

1 Ответ

1 голос
/ 13 мая 2011

Используйте пользовательскую форму.Затем в методе __init__ назначьте виджет Textarea или CheckboxInput в качестве виджета поля на основе любой оценки, которая вам нравится.

class MyModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MyModelForm, self).__init__(*args, **kwargs)

        if self.instance.isValue:
            self.fields['myfield'].widget = forms.Textarea()
        else:
            self.fields['myfield'].widget = forms.CheckboxInput()

Выше приведен упрощенный пример.Вам придется изменить, чтобы соответствовать вашей логике, но применяется основной принцип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...