Django一个字段和多个表单集
在Django中,我想创建一个包含两个模型的表单——一个库模型和一个书模型。图书馆可以容纳多本书 现在,我已经创建了一个id=1的库,现在想创建一个表单来标记库中的多本书。如何创建表单,使字段看起来像预填充库ID:Django一个字段和多个表单集,django,Django,在Django中,我想创建一个包含两个模型的表单——一个库模型和一个书模型。图书馆可以容纳多本书 现在,我已经创建了一个id=1的库,现在想创建一个表单来标记库中的多本书。如何创建表单,使字段看起来像预填充库ID: Library: <id=1 Library> Book1 Title: _____ Book1 Author: _____ Book2 Title: _____ Book2 Author: _____ 但无法继续,我不确定是否将其与views.py集成。这方面有
Library: <id=1 Library>
Book1 Title: _____
Book1 Author: _____
Book2 Title: _____
Book2 Author: _____
但无法继续,我不确定是否将其与views.py集成。这方面有什么帮助吗?基本上,您的视图中应该有类似的内容。py: 在forms.py中: 请记住,只要您对默认表单感到满意,就不需要在inlineformset_工厂中指定自定义表单 模板:
如果您想更多地控制表单在模板中的显示方式,请选中。抱歉,我想在CBV设置中执行此操作,抱歉,忘记将其添加为requirement@bryanblackbee如果要使用CBV,应该使用CreateView并重写get和post方法。检查并让我知道,如果你不能使工作顺便说一句,我更喜欢与FBV的工作,因为他们在这个用例中更清楚。
Library: <id=1 Library>
Book1 Title: _____
Book1 Author: _____
Book2 Title: _____
Book2 Author: _____
BookFormset = inlineformset_factory(Library, Book,
fields=['title', 'author'], form=CreateBookForm, extra=2, min_num=1, max_num=20,
can_delete=True)
def library_books(request, library_pk):
if request.method == 'POST':
library = Library.objects.get(pk=pk)
formset = forms.BookFormset(request.POST, instance=library)
if formset.is_valid():
formset.save()
# ...
from .models import Library, Book
BookFormset = inlineformset_factory(Library, Book,
fields=['title', 'author'], extra=2, min_num=1, max_num=20,
can_delete=True)
<form method="post"> {% csrf_token %}
{{ formset }}
</form>