как изменить тип ввода формы - PullRequest
1 голос
/ 27 июня 2010

Я пытаюсь написать приложение для викторины. У меня есть следующая модель.

class Question(db.Model):
    question=db.StringProperty(required=True)
    answer_1=db.StringProperty(required=True)
    answer_2=db.StringProperty(required=True)
    answer_3=db.StringProperty(required=True)
    answer_4=db.StringProperty(required=True)
    correct_answer=db.StringProperty(choices=['1','2','3','4'])

и следующая форма

class QuestionForm(ModelForm):
    class Meta:
        model=Question

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

<input type="text">

пока я хочу, чтобы у них были радио-боксы, как мне добиться того же? мне нужен отдельный класс формы?

Ответы [ 2 ]

1 голос
/ 27 июня 2010

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

0 голосов
/ 27 июня 2010

Вы можете указать виджет для рисования формы Викторины в виде переключателей - вы можете узнать больше о виджетах на http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overriding-the-default-field-types-or-widgets

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

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