【发布时间】:2018-04-03 05:01:06
【问题描述】:
我已经为此苦苦挣扎了一段时间,任何帮助将不胜感激!
基本上,我想要做的是单击 Django 中的一个 HTML 按钮,更改数据库中的一个字段(具有相关主键的对象),然后重定向回主页。
一个清晰的例子:
目前,我正在使用网址:http://127.0.0.1:8000/result/edit/1/。 /1/ 是我要更改的模型的主键。该模型是一个自定义组模型,具有一个名为“状态”的字段。状态可以是“已批准”或“未批准”:
status = models.CharField(max_length=30, default=Status.not_sent, choices=Status.choices(), null=False)
在 url result/edit/1/ 我有一个“批准”按钮。当我单击按钮时,我想更改模型中的状态,并将其保存在数据库中。另外,在更改状态后,我想重定向回家。我在视图中编写了以下方法来做到这一点:
def approve_group(request, pk):
group = Group.objects.filter(pk=pk)
group.status = Status.approved
group.save()
return redirect(request, 'home')
在 html 中,我创建了以下按钮:
<a href="{% url 'resultregistration:approve_group' %}" />
<button id="approve-btn" />Approve</button>
</a>
我的理由是按钮应该调用这个 URL,它应该再次调用视图中的函数:
url(r'^result/approve/(?P<pk>\d+)/$', views.approve_group, name
='approve_group'),
不幸的是,这只给出了 NoReverseMatch 错误,我不知道如何继续。
感谢您的宝贵时间!
【问题讨论】:
-
阅读这个answer,因为你需要使用ajax调用