簡體   English   中英

Django rest framework-從HTML刪除模型對象

[英]Django rest framework - Delete model objects from HTML

因此,我正在使用Django框架開發應用程序,並且需要HTML表單來插入/刪除和更新數據庫中的數據。 我能夠制作表格來更新數據,但是我似乎找不到有關如何制作“創建表格”和“刪除”按鈕的任何信息。 我嘗試了這個,但沒有成功:

HTML

<form action="{% url 'conta_details_html' conta.id %}" data-method="delete">

    <input type="submit" value="delete">
</form>

瀏覽次數:

class ContaDetailsHTML(APIView):
    renderer_classes = [TemplateHTMLRenderer]
    template_name = 'conta_details.html'

    def get(self, request, pk):
        user = request.user
        conta = get_object_or_404(Conta, pk=pk,user=user)
        serializer = ContaDetailsSerializerHTML(conta)
        return Response({'serializer': serializer, 'conta': conta})

    def delete(self,request,pk):
        """Deletes a transaccao"""
        user = request.user
        if not user.is_authenticated:
            return Response(status=status.HTTP_403_FORBIDDEN)
        conta = get_object_or_404(Conta, pk=pk, user=user)
        serializer = ContaDetailsSerializerHTML(conta,many=False)
        if conta:
            conta.delete()
            return Response(status=status.HTTP_200_OK)
        return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)

也許我在html上語法不正確,但是更新形式非常簡單,如下所示:

<form action="{% url 'conta_details_html' conta.id %}" method="POST">
    {% csrf_token %}
    {% render_form serializer %}
    <input type="submit" value="Save">
</form>

任何想法 ?

編輯:

網址:

url(r'^api/html/contas/(?P<pk>[0-9]+)/$', views.ContaDetailsHTML.as_view(), name='conta_details_html'),

哦,即使是刪除也很容易。 您錯過了這里的幾件事。 1. DELETE是HTTP Verb,您在表單中的method字段可以采用其中之一。

<form action="{% url 'conta_details_html' conta.id %}" data-method="delete" method="DELETE">

    <input type="submit" value="delete">
</form>
  1. 在刪除視圖中,您嘗試序列化,但不需要。

     def delete(self, request, pk): """Deletes a transaccao""" user = request.user if not user.is_authenticated: return Response(status=status.HTTP_403_FORBIDDEN) conta = get_object_or_404(Conta, pk=pk, user=user) conta.delete() return Response(status=status.HTTP_200_OK) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM