У меня есть html, которые показывают список пользователей, созданных в этом приложении, в таблице вот html
<div class="row mt">
<div class="col-md-12">
<div class="content-panel align-content-center">
<table class="table table-striped table-advance table-hover">
<thead>
<tr>
<th><i class="fa fa-bullhorn"></i> User</th>
<th><i class="fa fa-bookmark"></i> Email</th>
<th><i class="fa fa-bookmark"></i> Division</th>
<th><i class="fa fa-bookmark"></i> Role</th>
<!-- <th><i class=" fa fa-edit"></i> Status</th> -->
<th></th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<td class="user_name">
{{user.name}}
</td>
<td>
{{user.email}}
</td>
<td>
{{user.division}}
</td>
<td>
<select id="userroles" class="roleselect" data-username="{{ user.name }}">
<option selected="selected">
{{user.role}}
</option>
{% if user.role == "Business Analyst" %}
<option>Admin</option>
<option>Manager</option>
<option>Segment Manager</option>
{% elif user.role == "Admin" %}
<option>Business Analyst</option>
<option>Manager</option>
<option>Segment Manager</option>
{% elif user.role == "Manager" %}
<option>Admin</option>
<option>Business Analyst</option>
<option>Segment Manager</option>
{% else %}
<option>Admin</option>
<option>Manager</option>
<option>Business Analyst</option>
{% endif %}
</select>
</div>
</td>
<td>
<button class="btn btn-danger btn-xs" onclick="myFunction()"><i class="fa fa-trash-o "></i></button>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<!-- /content-panel -->
</div>
<!-- /col-md-12 -->
</div>
<!-- /row -->
</section>
</section>
Я хочу сделать функцию удаления, которая требует подтверждения, прежде чем я использую onlick = "window.location.href = '{% url' polls: deleteuser 'user_name = user.name%}';", и это работает, но теперь я хочу сделать подтверждение, поэтому я пишу такой скрипт
<script>
function myFunction() {
var txt;
if (confirm("Do you want to delete!")) {
window.location.href ='{% url 'polls:deleteuser' user_name=user.name %}';
} else {
//don't do anything
}
}
</script>
каждый раз, когда я нажимаю ок, будет ошибка Reverse for 'deleteuser' with keyword arguments '{'user_name': ''}' not found. 1 pattern(s) tried: ['deleteuseradmin/(?P<user_name>[^/]+)$']
window.location.href не работает, может быть, он не может перейти от значения класса? Мне нужна помощь, чтобы исправить это
вот URL
path('deleteuseradmin/<str:user_name>',views.del_user,name='deleteuser'),
спасибо
РЕДАКТИРОВАТЬ: VIEWS.PY
def del_user(request, user_name):
u = User.objects.get(username = user_name)
identity = u.id
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('', '', sid='')
conn = cx_Oracle.connect(user=r'', password='', dsn=dsn_tns)
c = conn.cursor()
c.execute("delete from polls_userprofileinfo where user_id = '"+str(identity)+"'")
conn.commit()
c.execute("delete from auth_user where id = '"+str(identity)+"'")
conn.commit()
messages.success(request, "The user is deleted")
print("sukses");
return redirect('/manageuser/')
трассировка ошибок
NoReverseMatch at /manageuser/
Reverse for 'deleteuser' with arguments '('',)' not found. 1 pattern(s) tried: ['deleteuseradmin/(?P<user_name>[^/]+)$']
Request Method: GET
Request URL: http://127.0.0.1:8000/manageuser/
Django Version: 2.2.6
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'deleteuser' with arguments '('',)' not found. 1 pattern(s) tried: ['deleteuseradmin/(?P<user_name>[^/]+)$']
Exception Location: C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 673
Python Executable: C:\Users\u532246\AppData\Local\Programs\Python\Python38\python.exe
Python Version: 3.8.0
Python Path:
['C:\\Users\\u532246\\Desktop\\django-master-terbaru-4\\django-master-terbaru3\\django-master-terbaru3\\Django-master',
'C:\\Users\\u532246\\AppData\\Local\\Programs\\Python\\Python38\\python38.zip',
'C:\\Users\\u532246\\AppData\\Local\\Programs\\Python\\Python38\\DLLs',
'C:\\Users\\u532246\\AppData\\Local\\Programs\\Python\\Python38\\lib',
'C:\\Users\\u532246\\AppData\\Local\\Programs\\Python\\Python38',
'C:\\Users\\u532246\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages']
Server time: Tue, 7 Jan 2020 09:38:09 +0000
Error during template rendering
In template C:\Users\u532246\Desktop\django-master-terbaru-4\django-master-terbaru3\django-master-terbaru3\Django-master\polls\templates\manage_user.html, error at line 342
Reverse for 'deleteuser' with arguments '('',)' not found. 1 pattern(s) tried: ['deleteuseradmin/(?P<user_name>[^/]+)$']
332 }
333 });
334 });
335 });
336 </script>
337 <script>
338
339 function myFunction() {
340 var txt;
341 if (confirm("Do you want to delete!")) {
342 window.location.href ='{% url 'polls:deleteuser' user.name %}';
343 } else {
344 //don't do anything
345 }
346
347 }
348 </script>
349
350 </body>
351
352 </html>
Traceback Switch to copy-and-paste view
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\exception.py in inner
response = get_response(request) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\base.py in _get_response
response = self.process_exception_by_middleware(e, request) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\base.py in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs) …
▶ Local vars
C:\Users\u532246\Desktop\django-master-terbaru-4\django-master-terbaru3\django-master-terbaru3\Django-master\polls\views.py in manageuser
return render(request, 'manage_user.html',context) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\shortcuts.py in render
content = loader.render_to_string(template_name, context, request, using=using) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\loader.py in render_to_string
return template.render(context, request) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\backends\django.py in render
return self.template.render(context) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py in render
return self._render(context) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py in _render
return self.nodelist.render(context) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py in render
bit = node.render_annotated(context) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\base.py in render_annotated
return self.render(context) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\template\defaulttags.py in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\urls\base.py in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) …
▶ Local vars
C:\Users\u532246\AppData\Local\Programs\Python\Python38\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix
raise NoReverseMatch(msg) …
▶ Local vars