Django:使用按钮更新模型字段

时间:2018-08-22 19:26:51

标签: django python-3.x

我想使用一个按钮来更新我的一个模型(PieceInstance)中的字段(声明人),然后将用户重定向到他可以看到所有声明的实例的页面。

代码如下:

按钮: (遍历所有实例)

      <a target="_blank"
          method="POST"
          class="button" 
          href="{% url 'claim' pk=instance.pk %}">
          Claim
      </a>

views.py

def claim(request, pk):
    piece_instance = PieceInstance.objects.get(pk=pk)
    piece_instance.claimant = request.user
    piece_instance.save()
    return HttpResponseRedirect(reverse('my-claimed'))

urls.py

urlpatterns += [   
    path('myclaimedpieces/<uuid:pk>', views.claim, name='claim'),
]

它运行平稳,但是不会更新模型中的字段,因此重定向页面上的内容仍然为空。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

对我来说看起来不错。唯一的事情是在method标记中使用<a>毫无意义。您应该使用纯链接:

 <a target="_blank" 
     class="button" 
     href="{% url 'claim' pk=instance.pk %}">
     Claim
 </a>

或使用带有真实按钮(而不是链接格式为按钮的链接)的表单:

<form method="POST" action="{% url 'claim' pk=instance.pk %}">
    <button type="submit"
        class="button">
        Claim
    </button>
</form>