我正在尝试找出以下应用程序的架构:
- 系统会向用户显示一张表格。
- 每个表格单元格都有多个用户需要填写的字段。
- 有一个通用提交按钮:当单击所有输入数据(以及基于输入值的每个单元格的一些计算数据)时,应传递到 Django View 。
这里有以下问题:
我可以将数据结构组织为一组对象,每个对象对应一个表格单元格,而最终将传递到 Django View 的主对象将是一组那些物体?
如果是这样,如何将 Master 对象从模板传递到使用 Django 进行查看?
谢谢。
最佳答案
<强>1。是否可以在 HTML/JS 中创建一个对象,其成员将包含字段中的数据?
您无法在 html/JS 中创建对象,但您可以构建代码以在 Django 中显示或请求来自对象的数据。
例如,您有一个模型 Foo
class Foo(models.Model):
GENDER = (
('F', 'Female'),
('M', 'Male'),
)
name = models.CharField(max_length=150)
gender = models.CharField(max_length=1, choices=GENDER)
你的模板看起来像这样
<body>
<form action="?" method="post">
<table>
<tr>
<td>Name</td>
<td><input type="text" name="name" maxlength="150" /></td>
</tr>
<tr>
<td>Gender</td>
<td>
<select name="gender">
<option value="F">Female</option>
<option value="M">Male</option>
</select>
</td>
</tr>
</table>
<input type="submit">
</form>
</body>
如果您填写字段并单击“提交”,则可以在 View 中处理数据。
def add_foo(request):
if request.method == "POST": # Check if the form is submitted
foo = Foo() # instantiate a new object Foo, don't forget you need to import it first
foo.name = request.POST['name']
foo.gender = request.POST['gender']
foo.save() # You need to save the object, for it to be stored in the database
#Now you can redirect to another page
return HttpResponseRedirect('/success/')
else: #The form wasn't submitted, show the template above
return render(request, 'path/to/template.html')
我认为最后一点也回答了问题 2。希望这会有所帮助。
关于javascript - 使用 Django 将对象从模板传递到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16067603/