Jquery 提交通过javascript添加到请求对象的字段
我试图做的是,当用户单击span中包含的图标时,我通过javascript添加一个author字段。但问题是,提交表单时通过javascript添加的字段既不能在表单对象中获得,也不能在request.POST对象中获得。 我主要有两个问题:Jquery 提交通过javascript添加到请求对象的字段,jquery,django,django-forms,Jquery,Django,Django Forms,我试图做的是,当用户单击span中包含的图标时,我通过javascript添加一个author字段。但问题是,提交表单时通过javascript添加的字段既不能在表单对象中获得,也不能在request.POST对象中获得。 我主要有两个问题: 我希望能够将通过javascript添加的字段中的值传递给服务器,并能够在views.py中访问这些值 我还想知道是否有更整洁的方法 views.py def addbook(request): if request.method=='POST':
def addbook(request):
if request.method=='POST':
print(request.POST)
form=BookForm(request.POST)
# process accordingly.
else:
form = BookForm()
return render(request,'book.html',{'form':form})
forms.py
class BookForm(forms.Form):
author_name=forms.CharField(max_length=20)
book.html
<form action='' method="POST">
<div id='authorfield'>{{ form.author_name }}</div>
<a href='#'><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></a>
</form>
{{form.author_name}
book.js
$('span').click( function(e) {
e.preventDefault();
$("#authorfield").after(" <div><input type='text' class='form-control' placeholder='Author name'></div>");
});
$('span')。单击(函数(e){
e、 预防默认值();
$(“#authorfield”)。在(“”)之后;
});
您需要在JS添加的输入
元素中有一个名称
属性
然而,我不确定这是否会满足你的要求;您已经有一个author\u name字段,因此不清楚为什么要添加另一个。我希望能够根据用户的需要为author\u name添加尽可能多的字段(可能也有多个作者),并且添加名称字段也是一个问题,因为名称必须是唯一的,用户添加的两个字段将具有相同的名称。另外,如果我添加了name属性,那么我是否能够在views.py中访问它?听起来你真的在寻找。“我希望能够根据用户的需要为author_name创建尽可能多的字段(也可能有多个author)”=>那么你的模型是错误的-你应该有一个
作者
模型和一个与书籍
@brunodesshuilliers的多对多关系我的作者字段已经是多对多字段了,但是如果我在我的表单中使用该字段作为模型表单,那么我会得到一个向下滚动的列表来选择已经插入的作者..我希望用户能够输入作者列表…无论如何,我用其他方法解决了这个问题。