【问题标题】:Update a db record in DJANGO with out having to use a form? EXAMPLE: Click to complete UPDATES a record无需使用表单即可更新 DJANGO 中的数据库记录?示例:单击以完成更新记录
【发布时间】:2010-11-29 22:40:10
【问题描述】:

我在列表中有一个项目。我想单击某些东西并让该单击触发视图。该视图会更新该列表项在数据库中的状态。

例如,添加到购物车,或保存日期,或完成。

在每种情况下,单击该链接都会将数据库记录更新为新状态。现在这些只是布尔字段。

你可以看到这是怎么回事。将使用 Ajax 调用与该视图相关联的 URL。但我试图通过优雅的降级来做到这一点。我知道如何做 Ajax 部分,只是不知道数据库更新部分。

除了基本的 form.is_valid 和 form.save 之外,我从来没有做过更多的事情。所以我有点失落。

欢迎提出想法。

谢谢

【问题讨论】:

    标签: django django-models django-templates django-forms django-views


    【解决方案1】:

    类似:

    def some_view(request, *args, **kwargs):
        my_obj = MyModel.object.filter(pk=kwargs['id'])
        if my_obj:
            my_obj = my_obj[0]
            my_obj.fancy_status = "someone wants to buy me!"
            my_obj.save()
        return some_appropriate_response()
    

    具有类似的 url 模式

    (r'^/my_objects/(?P<id>\d{1,9})/buy/$', some_view)
    

    似乎正是您要找的东西,对吧?

    基本上,您可以按照自己的想法保存模型实例。

    【讨论】:

    • my_obj.fancy_status = "有人要买我!"会用“有人想买我!”填充 obj.fancy_status 字段。 - 对吗?
    • 没错。除了,好吧,我很愚蠢,所以我最初拥有的是一个查询集而不是一个模型实例。修复代码,使其按预期工作(即,您描述的方式)。
    猜你喜欢
    • 2014-11-13
    • 1970-01-01
    • 2012-04-18
    • 2018-12-10
    • 2022-11-02
    • 2021-12-31
    • 2015-08-10
    • 2014-12-16
    • 2023-03-06
    相关资源
    最近更新 更多