django x-editable / post URL issue& django模型保存

时间:2016-05-08 17:19:22

标签: django save models x-editable

我想点击对象并更改其属性值,并通过使用新属性值更新对象来保存它。

我尝试使用x-editable实现它但是它给了我一个问题,如下图所示。我相信它与我在main.js脚本中定义的url有关。

任何想法我该如何解决?我想使用django模型保存功能,因为我将其用于其他原因。

这是当我点击subage值和x-editable jquery时: enter image description here

但它没有保存新值: enter image description here

终端返回:

<%= render MyApp.EmailView, "index.html", conn: @conn, emails: @user.emails %>

以下是我的模板代码的一部分:

[08/May/2016 17:06:03]"POST /post HTTP/1.1" 404 2027

这是我的main.js代码:

{% for substage in trsubstage.substages_related %}
    {% for zone in zones %}
        {% if zone == substage.stage.zone %}
            <td style="width:40px" align="center">
                <div id="substage">
                    <a href="#" data-pk="{{ substage.id }}" data-type="text" >
                        {{ substage.substage_value }}</a>
                </div>
            </td>
        {% endif %}
    {% endfor %}
{% endfor %}

这是我的网址:

$(document).ready(function() {
    //toggle `popup` / `inline` mode
    $.fn.editable.defaults.mode = 'popup';

$('#substage a').editable({
    type: 'text',
    name: 'username',
    url: '/post',
    title: 'Enter username'
    });
});

这是我的模型Substage:

urlpatterns = [
    url(r'^$', views.MainStatusView.as_view(), name='mainstatus'),
    ]

2 个答案:

答案 0 :(得分:0)

您没有名为&#34; post&#34;在你的urls.py中,所以你的js功能,但请求不知道在哪里发送你的数据。

答案 1 :(得分:0)

好的,

下面是更新后的代码,现在工作正常,所以我可以保存值: - )

模板:

{% for substage in trsubstage.substages_related %}
    {% for zone in zones %}
        {% if zone == substage.stage.zone %}
            <td style="width:40px" align="center">
                <div id="substage">
                    <a href="#" data-pk="{{ substage.id }}" data-type="text" >
{{ substage.substage_value }}</a>
                </div>
            </td>
        {% endif %}
    {% endfor %}
{% endfor %}
</tr>
{% endfor %}

main.js

$(document).ready(function() {
    //toggle `popup` / `inline` mode
    $.fn.editable.defaults.mode = 'popup';

$('#substage a').editable({
    type: 'text',
    name: 'username',
    url: '/main/dupa/',
    title: 'Enter username'
    });
});

<强> urls.py

urlpatterns = [
    url(r'^$', views.MainStatusView.as_view(), name='main'),
    url(r'^dupa/$', views.dupa, name='dupa'),
    ]

<强> views.py

@csrf_exempt
def dupa(request):
    if request.POST:
        z = SubStage.objects.get(pk=request.POST.get('pk'))
        z.substage_value = int(request.POST.get('value'))
        z.save()
        return HttpResponseRedirect('/main/')