2009-12-01 3 views
1

Я использую James Bennetts code для создания динамической формы. У меня все работает, но вы хотите сохранить данные в базе данных. Кто-нибудь получил какой-либо код, который делает это или может показать мне, что лучший способ сделать это будет, например. как настроить модель и т. д.?Django Dynamic Forms

+0

Вы должны показать нам код, чтобы помочь вам - как вы используете формы .Form или forms.ModelForm. По большей части, хотя, с первым, вы можете определить метод save() для формы и получить доступ к данным из cleaned_data. –

+0

код, который я использую, копируется непосредственно из статьи Джеймса Беннета (см. Строку выше). Он не использует ни формы .form, либо form.modelform, он автоматически генерирует элементы формы «на лету», которые я хочу добавить в базу данных. – John

ответ

2

Override save() метод на вашем классе формы:

def save(self): 
    new_user = User.objects.create_user(username=self.cleaned_data['username'], 
             email=self.cleaned_data['email'], 
             password=self.cleaned_data['password1']) 
    return new_user 

(взято из блога Джеймса Беннета в Newforms, part 2)

+0

У меня нет объекта для переопределения, поскольку он каждый раз отличается и генерируется на fly – John

+0

Я понимаю, что ваш код основан на его версии 'make_contact_form', которая использует' type' для генерации класса? –

+0

Да, это правильно. Я планирую расширить его код, чтобы вместо жесткого кодирования, которые формируют элементы, я вытащу их из таблицы базы данных, которая заполняется пользователем – John