【问题标题】:Using a custom form in a modelformset factory?在模型表单集工厂中使用自定义表单?
【发布时间】:2010-05-17 22:28:41
【问题描述】:

我希望能够在 modelformset_factory 中使用自定义表单。例如:

models.py

class Author(models.Model):
    name = models.CharField()
    address = models.CharField()

class AuthorForm(ModelForm):
   class Meta:
        model = Author

views.py

def test_render(request):
    myModelFormset = modelformset_factory(Author)
    items = Author.objects.all()
    formsetInstance = myModelFormset(queryset = items)
    return render_to_response('template',locals())

上面的代码工作得很好,但请注意我没有使用 AuthorForm。问题是如何让 modelformset_factory 使用 AuthorForm(我计划稍后自定义)而不是制作默认的 Author 表单?

【问题讨论】:

    标签: django django-models django-forms


    【解决方案1】:

    我认为您应该能够像这样传递自定义模型表单:

    myModelFormset = modelformset_factory(Author, form=AuthorForm)
    

    【讨论】:

    • 谢谢。在我发布问题后不久,我通过查看源代码发现了这一点。我很惊讶我没有在文档中偶然发现该选项。您是否有指向任何表明这是一个选项的文档的链接?
    • 我认为最接近的文档提到它是说 ModelFormset“只是”一个了解模型的 Formset,因此您可以在 modelformset_factory 中使用来自 formset_factory 的参数。 formset_factory 的文档说您可以指定表单类。看起来从 modelformset_factory 到 inlineformset_factory 有类似的对应关系。
    • 这里有 django 文档中的链接 docs.djangoproject.com/en/1.5/ref/forms/models
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2018-09-11
    • 2014-01-01
    • 2015-11-28
    • 2016-01-04
    • 2011-07-03
    • 1970-01-01
    • 2013-03-28
    相关资源
    最近更新 更多