Javascript 在Django中使用xhttp获取额外的HTML数据
我现在正在使用基于ModelForm类的Django表单,该类在我的页面上使用一些JavaScript来使用POST接收表单数据Javascript 在Django中使用xhttp获取额外的HTML数据,javascript,django,Javascript,Django,我现在正在使用基于ModelForm类的Django表单,该类在我的页面上使用一些JavaScript来使用POST接收表单数据 class MyForm(ModelForm): data_url = '/form-data/' dep_fields = '__all__' class Meta: model = Sign fields = '__all__' exclude = ['name', ] class
class MyForm(ModelForm):
data_url = '/form-data/'
dep_fields = '__all__'
class Meta:
model = Sign
fields = '__all__'
exclude = ['name', ]
class Media:
js = ('js/form.js',)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
attrs_dict = {'onchange': 'addForm(this)', 'style': 'display:', 'data-url': f'{self.data_url}'}
if self.data:
'''form fields logic'''
我的Javascript执行以下操作。它存储我的表单数据,如下所示:
var data = new FormData(obj.form);
var data = new FormData(obj.form);
var field_id = parseInt(obj.id );
data.append('field_id', field_id);
xhttp.send(data);
然后在每次更改任何表单字段时发送到我的服务器:
xhttp.send(data);
表单数据如下所示,存储在表单self.data中:
self.data = {'csrfmiddlewaretoken': ['cpWuNU1JfK'], 'country': ['2'], 'region': [''], 'area': [''], 'color': [''], 'sign': ['']}
(为了方便,我减少了代币)
所以我只需要从我的HTML页面中获取所选字段的ID(本例中为国家ID)。
我在我的JS中添加了以下代码:
var field_id = parseInt(obj.id );
xhttp.send(field_id);
它似乎在工作,但我不明白在Django服务器上从何处或如何获取这些数据(字段id)
UPD:
当我这样做的时候:
var data = new FormData(obj.form);
var data = new FormData(obj.form);
var field_id = parseInt(obj.id );
data.append('field_id', field_id);
xhttp.send(data);
id
值附加到我的帖子表单中。数据如下:
var data = new FormData(obj.form);
var data = new FormData(obj.form);
var field_id = parseInt(obj.id );
data.append('field_id', field_id);
xhttp.send(data);
self.request.POST
:你试过request.POST.get('country')
?我的帖子现在看起来像这样self.request.POST
:你说的“字段id”是什么意思?您是否正在尝试确定发送到服务器的字段?是!我的表单有字段,每个字段都有自己的id:您必须用JS明确地发送字段的id
属性值。id
仅在浏览器中使用。或者您可以将id
设置为与name
属性相同。您是否尝试过request.POST.get('country')
?我的帖子现在看起来像self.request.POST
:您所说的“field\u id”是什么意思?您是否正在尝试确定发送到服务器的字段?是!我的表单有字段,每个字段都有自己的id:您必须用JS明确地发送字段的id
属性值。id
仅在浏览器中使用。或者您可以将id
设置为与name
属性相同。