在DJANGO中更新db记录而不必使用表单?示例:单击以完成记录更新

在DJANGO中更新db记录而不必使用表单?示例:单击以完成记录更新,django,django-models,django-templates,django-forms,django-views,Django,Django Models,Django Templates,Django Forms,Django Views,我的清单上有一个项目。我想点击一些东西,然后点击触发一个视图。该视图将更新该列表项在数据库中的状态 例如,添加到购物车、保存日期或完成 在每种情况下,单击该链接将使用新状态更新db记录。现在这些只是布尔字段 你可以看到这是怎么回事。绑定到该视图的URL将使用Ajax调用。但我正试图以优雅的方式来做到这一点。我知道如何做Ajax部分,只是不知道db更新部分 除了基本的form.is_valid和form.save之外,我从未做过更多的工作。所以我有点迷路了 欢迎提出意见 谢谢类似于: def so

我的清单上有一个项目。我想点击一些东西,然后点击触发一个视图。该视图将更新该列表项在数据库中的状态

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

在每种情况下,单击该链接将使用新状态更新db记录。现在这些只是布尔字段

你可以看到这是怎么回事。绑定到该视图的URL将使用Ajax调用。但我正试图以优雅的方式来做到这一点。我知道如何做Ajax部分,只是不知道db更新部分

除了基本的form.is_valid和form.save之外,我从未做过更多的工作。所以我有点迷路了

欢迎提出意见

谢谢

类似于:

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)
(r'^/my_objects/(?P\d{1,9})/buy/$,一些视图)
似乎就是你要找的,对吧


基本上,您可以像您所想的那样保存模型的实例。

my_obj.fancy_status=“有人想买我!”将在obj.fancy_status字段中填充“有人想买我!”-正确吗?没错。除了,我很笨,所以在我最初拥有的是一个查询集,而不是一个模型实例。修复代码,使其按预期工作(即,您如何描述)。