“我的对象”是不可复制的,但我的对象被删除了

2024-05-28 21:16:47 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我有一个关于对象在django中不可Iterable的问题,当我删除一个对象时,django的消息是“myobject”对象不可Iterable。你知道吗

这是我的视图.py你知道吗

def delete(request, id=None):
    myobject = get_object_or_404(MyObject, id=id)
    myobject.delete()
    context = {'myobject': myobject}
    return render(request, "cat/home.html", context)

这是我的主页.html你知道吗

{% block content %}
        {% for foo in myojbect %}
            {% if foo.name_myobject %}
                <p><a href="{% url 'cat:detail_myobject' id=foo.id %}">{{ foo.name_myobject }}</a></p>
            {% endif %}
            {% if foo.desc %}
                <p>{{ foo.desc }}</p>
                <a href="{% url 'cat:delete_myobject' id=foo.id %}">Delete</a>
            {% endif %}
        {% endfor %}
    {% endblock %}

如果我按“delete”,错误会显示为“'myobject'is not iterable”,但我的对象会被删除-_- 感谢您的帮助:)


Tags: 对象djangonameidurliffoorequest
2条回答

我的问题解决了,伙计们,非常感谢@Selcuk和@iamkush的回答,非常有用:)。这是用redirect:D解决问题的代码

def delete(request, id=None):
    myobject = get_object_or_404(MyObject, id=id)
    if myobject.delete():
        return redirect('/cat/myobject/')
    context = {'myobject': [myobject]}
    return render(request, "cat/home.html", context)

谢谢你们:)

myobject是一个模型实例。你不能重复这个。通常使用querysets进行迭代。你知道吗

看看模板代码,这就是你想要做的。你能做的最简单的事情就是在一个列表中传递这个对象,比如

context = {'myobject': [myobject]}这应该行得通。你知道吗

相关问题 更多 >

    热门问题