htmx:targetError 在 django 项目中

htmx:targeterror in django project

提问人:SKAv 提问时间:2/25/2023 更新时间:2/25/2023 访问量:342

问:

我的目标是在 django 中使用 htmx 单击列表项(资产)以加载和更新列表旁边的表单,但我收到 HTMX:Targeterror。我相信我已经正确地给出了 hx-target,我无法弄清楚为什么会出现这个问题。.有人,请帮忙..

使用以下代码时,我收到htmx:targetError。你能帮我找出问题所在吗?

模板

{% for asset in portfolio.children %}
            <tr id="asset-{{ asset.id }}" >
              <td class="col-md-12 col-lg-12 node-style" hx-get="{% url 'portfolio:asset-update' asset.id %}"
              hx-target="#assetUpdate" hx-swap="outerHTML">&emsp;{{ asset.name }}</td>
            </tr>

视图。PY ASSET_UPDATE

def asset_update(request, id):
    asset = Asset.objects.get(id=id)
    update_asset_form = AssetForm(request.POST or None, instance=asset)

    if update_asset_form.is_valid():
        update_asset_form.save()
    context = {
        "update_asset_form": update_asset_form,
        "asset": asset,
    }
    return render(request, "portfolio/partials/02-asset-update.html", context)

02-资产更新.HTML

{% load crispy_forms_filters %}
{% load crispy_forms_tags %}

<div id="assetUpdate">
    <form method="post" class="form-group" novalidate>
        {% csrf_token %}
        {% crispy update_asset_form %}
        <button type="submit" class="bland-button-style" hx-post="{% url 'portfolio:asset-update' asset_id=asset.id %}"
            hx-target="#assetUpdate" hx-swap="outerHTML">
            <i class="fa-solid fa-cloud-arrow-down fa-lg header-icon-style portfolio-save-icon"></i>
        </button>
    </form>
</div> 
python html css django 模板

评论

0赞 Dauros 2/25/2023
元素在基本模板中的什么位置?我只在部分模板中看到它。#assetUpdate
0赞 SKAv 2/25/2023
我在基本模板中没有它..我的目标是将update_asset_form加载到自身上(这是部分的)。因此,我对该函数进行了 hx-get,该函数呈现了部分,然后使用 hx-target 调用 div。方法有什么问题吗?
0赞 Dauros 2/25/2023
您误解了 HTMX 的工作原理。在您发出请求的那一刻,它需要一个有效的目标元素。因此,当您在部分模板中加载表单时,请为第一个请求创建一个有效的目标元素。之后,您可以使用目标,因为它的模板已被 HTMX 加载。#assetUpdate

答: 暂无答案