2010-06-27 3 views
1

Я пытаюсь написать приложение для викторины. У меня есть модель follwing.Как изменить формы ввода типов

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 

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

<input type="text"> 

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

ответ

1

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

0

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

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

Смежные вопросы