我想创建一个管理页面,管理员可以在其中删除用户。我已经成功地使它列出了创建的用户,但是现在我在努力创建一个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>
截至目前,当我尝试加载页面时,我收到此异常。
未找到“删除功能”的反面。 “删除功能”不是 有效的视图函数或模式名称。
答案 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>