直接从html模板中删除用户

时间:2018-12-26 13:23:35

标签: python django

我想创建一个管理页面,管理员可以在其中删除用户。我已经成功地使它列出了创建的用户,但是现在我在努力创建一个deleteView来从我的django项目中完全删除该用户。

Views.py

def index(request):
    users = User.objects.all()
    return render(request, 'EditUser.html',{'userlist':users})


def deletefunction(request,User =None):
    object = User.objects.get(id=User)
    object.delete()
    return render(request,'EditUser.html')

项目urls.py

from edit_user.views import deletefunction

urlpatterns = [
    path('admin/', admin.site.urls),
    path('management', include('management.urls')),
    path('management/create', include('signup.urls')),
    path('management/edit', include('edit_user.urls')),
    path('^delete/(?P<User>[0-9]+)/$', deletefunction, name='delete_view'),
]

HTML代码

<div class="container">
          {% for item in userlist %} 
          <tr> 
              <td>{{ item.username }}</td><a href="{% url 'EditUser:deletefunction' User %}">delete</a> 
          </tr>  
          {% endfor %} 

          </div>

截至目前,当我尝试加载页面时,我收到此异常。

  

未找到“删除功能”的反面。 “删除功能”不是   有效的视图函数或模式名称。

2 个答案:

答案 0 :(得分:1)

我认为您应该删除href中的EditUser。因为您在项目urls.py中输入url(而不是EditUser urls)。因此django看起来是EditUser app_name,但找不到。
另外,您还没有确定“用户”。您的网址名称为“ delete_view”,但您发送了视图名称。
您可以这样更改吗?也许可以。

<td>{{ item.username }}</td><a href="{% url 'delete_view' item.id %}">delete</a> 

答案 1 :(得分:1)

def deletefunction(request, user_id):
    object = User.objects.get(id=user_id)
    object.delete()
    users = User.objects.all()
    return render(request,'EditUser.html', {'userlist': users})

<div class="container">
          {% for item in userlist %} 
          <tr> 
              <td>{{ item.username }}</td><a href="{% url 'delete_view' item.id %}">delete</a> 
          </tr>  
          {% endfor %} 

          </div>