我使用form wizard
基于2个模型创建多步形式。
models.py:
class Author(models.Model):
refCode = models.IntegerField(unique=True)
lastName = models.CharField(max_length=20)
firstName = models.CharField(max_length=20)
birthDate = models.DateField()
description = models.TextField()
style = models.ForeignKey(Style)
class Book(models.Model):
refCodeAuthor = models.ForeignKey(Author)
title = models.CharField(max_length=100)
summary = models.TextField()
view.py:
class AuthorWizard(SessionWizardView):
form_list = [AuthorForm, DescriptionForm, BookForm]
def done(self, form_list, form_dict, **kwargs):
form_values={}
for form in form_list:
form_values.update(form.cleaned_data)
auth = Author(**form_values)
auth.save()
return render(self.request, 'done.html', {
'form_values':form_values,
})
我有3个步骤,对应form_list
当我在BookForm
时,我不想显示refCodeAuthor
,但在步骤refCode
中使用AuthorForm
的值自动填写此字段。
用户创建一个作者,然后他添加他的书。他不必选择refCodeAuthor
,但它不在同一模型中。
我怎样才能做到这一点?
答案 0 :(得分:0)
您可以在AuthorWizard类中使用get_form方法:
let santa_images = {};
function setup(){
santa_images = create_animation_dict();
}
另一种解决方案是将其传递给kwargs,并在表单初始化之前将其弹出,尽管如果您也不提供form.py文件,则很难推荐任何东西