2024-04-25 03:48:51 发布
网友
Django有formsets,其中可以在一个大表单中使用多个表单。因此,假设可以使用相同的图书形式重复添加多个图书(提供作者和书名)。在
如何实现相同的功能角度.js以及Django Rest框架?我是新手角度.js以及Django Rest框架,需要一些指导,如何能够在一个大的表单(例如,我的库)中为一个给定的模型动态添加更多的表单(例如,对于一本书),并将它们保存在Django后端。在
您可以通过两个步骤实现:
在您的页面上创建一个<form>,它将根据需要对用户输入的数据进行结构化。在<form>元素中,需要使用ngForm来验证多个表单的正确行为(here是ngForm如何工作的一个很好的解释)。假设的代码片段如下所示:
<form>
ngForm
<form name="libraryForm"> <div ng-repeat="book in vm.newBooksToAdd"> <! ngForm directive allows to create forms within the parent form > <ng-form name="bookForm"> <div> <label>Book title</label> <input ng-model="book.title" type="text" name="title" required> </div> <div> <label>Author</label> <input ng-model="book.author" type="text" name="author" required> </div> </ng-form> </div> </form>
在您的控制器中,您可以初始化要添加为vm.newBooksToAdd = [];的图书列表,并且只要vm.newBooksToAdd.push({})一个空对象就可以添加新表单。因此,您将向后端发送一个表示要创建的书籍的对象数组。在
vm.newBooksToAdd = [];
vm.newBooksToAdd.push({})
现在您需要重写视图的.create()方法,以允许一次创建多个实例,因为默认情况下它只需要一个对象。您的视图可能如下所示:
.create()
注意:如果您希望同时允许单个实例的批量创建,您需要调整您的.create()方法来检查request.data的数据类型。在
request.data
注意2:后端有一个^{}库可以实现您想要的功能,但是我没有尝试过,所以不能说它有什么坏处或好的地方。在
祝你好运!在
您可以通过两个步骤实现:
在前端
在您的页面上创建一个
<form>
,它将根据需要对用户输入的数据进行结构化。在<form>
元素中,需要使用ngForm
来验证多个表单的正确行为(here是ngForm
如何工作的一个很好的解释)。假设的代码片段如下所示:在您的控制器中,您可以初始化要添加为
vm.newBooksToAdd = [];
的图书列表,并且只要vm.newBooksToAdd.push({})
一个空对象就可以添加新表单。因此,您将向后端发送一个表示要创建的书籍的对象数组。在在后端
现在您需要重写视图的
^{pr2}$.create()
方法,以允许一次创建多个实例,因为默认情况下它只需要一个对象。您的视图可能如下所示:注意:如果您希望同时允许单个实例的批量创建,您需要调整您的
.create()
方法来检查request.data
的数据类型。在注意2:后端有一个^{} 库可以实现您想要的功能,但是我没有尝试过,所以不能说它有什么坏处或好的地方。在
祝你好运!在
相关问题 更多 >
编程相关推荐