我正在尝试使用 django + HTMX 创建一个 CRUD 页面,但无法发送 POST 请求。hx-post 发送 GET 请求而不是 POST 请求。
我的榜样如下:
class Role(models.Model):
name = models.CharField(max_length=200)
我正在使用 Cripsy Forms 创建表单,如下所示
class RoleForm(forms.ModelForm):
class Meta:
model = Role
fields = ('name', )
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.fields['name'].label = "Role"
self.helper.add_input(Submit('add_new_Role', 'Add', css_class='role_button'))
self.helper.layout = Layout(
Row(
Column('name'),
)
)
我在我的模板中使用这样的表格:
{% extends 'main.html' %}
{% load crispy_forms_tags %}
{% block content %}
<div class="row">
<div class="card col-md-6 ml-auto mr-auto">
<div class="card-body">
{% crispy role_form %}
</div>
</div>
</div>
<div id="role_list">
{% include 'role_list.html' %}
</div>
{% endblock %}
{% block javascript %}
<script type="text/javascript">
$(document).ready(function(){
$("form").removeAttr("method");
$('.role_button').attr("hx-post", '{% url "role_add" %}');
$('.role_button').attr('hx-target', '#role_list');
});
</script>
{% endblock %}
CDN 链接添加到 main.html 文件中。
我的理解是单击 ADD 按钮应该触发 POST 请求。但是发起了 GET 请求,这让我觉得 HTMX 部分根本不起作用