我有一个简单的表格
class MyForm(forms.ModelForm):
class Meta:
model = Track
fields = ['website', 'keyword']
labels = {'website': 'Website URL', 'keyword': 'Keyword'}
和一个 View
def track(request):
if request.method != 'POST':
form = MyForm()
else:
form = MyForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse('tb_main:index'))
context = {'form': form}
return render(request, 'tb_main/track.html', context)
和html表单模板(track.html)
<form action="{% url 'tb_main:track' %}" method='post'>
{% csrf_token %}
{% bootstrap_form form %}
<button name='submit'>Submit</button>
<input type='hidden' name='next' value="{% url 'tb_main:dashboard' %}" />
</form>
我希望能够在用户单击主页上的按钮时动态加载表单而不更改 url。我假设这可以使用 AJAX 来完成,但我不确定如何解决这个问题。
如果我只是对 track.html 进行 AJAX 调用,则不会附带 View 功能
如何在单击按钮后将 View 和 html 模板动态加载到主页?
我试过<button href="{% url 'tb_main:track' %}">load form</button>
但这不起作用。我们很高兴听到一些更有经验的开发人员讲述如何解决这个问题。谢谢
最佳答案
这里缺少的是附加到该按钮单击的 JS 脚本。像这样的东西(假设是 jQuery):
$('#mybutton').get(
"{% url 'tb_main:track' %}",
function(data) { $('#myform').html(data) }
);
和 HTML:
<div id="myform"></div>
<button id="mybutton">load form</button>
关于python - Django:如何动态加载表单到当前html页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49417456/