Уведомления

Группа в Telegram: @pythonsu

#1 Март 5, 2011 11:38:18

Moroznui
От:
Зарегистрирован: 2010-10-12
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Dynamic forms

Ну как обычно. Вопрос из разряда - а как сделать, что-бы было правильно, по-питоновски и понятно?
Модель:

class Field(models.Model):
name = models.CharField(u'Название поля',max_length=100,)
type = models.CharField(u'Тип поля',max_length=20, choices=TYPE_OF_FIELD_CHOICES)

class Dept(models.Model):
...
fields=models.ManyToManyField(Field)

class Answer(models.Model):
user = models.ForeignKey(UserAnswer)
field = models.ForeignKey(Field)
data = models.TextField()
В двух словах: анкетирование. Пользователь выбирает Отдел(Dept) и ему выдается сформированный список вопросов Dept.fields. Хочу это сделать через стандартные формы. Каким способом это лучше всего? Надеюсь понятно объяснил.



Офлайн

#2 Март 5, 2011 12:21:51

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Офлайн

#3 Март 9, 2011 16:26:16

freemon
От:
Зарегистрирован: 2008-07-17
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Dynamic forms

Такое решение подходит?

from django import forms
from models import Dept, Field

class DeptForm(forms.ModelForm):

class Meta:
model = Dept

def __init__(self, *args, **kwargs):
super(DeptForm, self).__init__(*args, **kwargs)
self.fields['fields'] = forms.ModelChoiceField(
queryset=self.instance.fields.all(), #if you add instance=Dept, when you create this form
)



Отредактировано (Март 9, 2011 16:31:12)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version