首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用参数(‘’,)‘找不到'admin_update’的反向。尝试了1模式:['admin_update/(?P<lesson_id>[^/]+)$']

用参数(‘’,)‘找不到'admin_update’的反向。尝试了1模式:['admin_update/(?P<lesson_id>[^/]+)$']
EN

Stack Overflow用户
提问于 2022-11-22 18:25:03
回答 1查看 50关注 0票数 1

我试图传递参数来编辑表值。如果有人能解决这个问题,我将不胜感激。

views.py `

代码语言:javascript
复制
#@login_required(login_url='/admin_login/')
def AdminManageRequests(request):
    lessons = Lesson.objects.all()
    return render(request,'admin/manage_requests.html',{'lessons':lessons})


def AdminUpdateRequests(request, lesson_id):
    lesson = Lesson.objects.get(pk=lesson_id)
    form = StudentRequestForm(request.POST or None, instance=lesson)
    context = {
        'lesson':lesson, 'form':form
    }
    return render(request, 'admin/update_requests.html',context)

`

urls.py `

代码语言:javascript
复制
path('admin_update/<lesson_id>', views.AdminUpdateRequests, name='admin_update'),

`

manage_requests.html `

代码语言:javascript
复制
{% extends 'admin/admin_home_base.html' %}
{% block admin_content %}
<div>
  <h3 class="display-8" style="text-align:center">
      Admin Lesson Request Management
  </h3>
  <hr class="my-4">
  <p style="text-align:center">
      You can view fulfilled and unfulfilled lesson requests.
  </p>
  <p class="lead" style="text-align:center">
    {% include 'admin/partials/fulfilled_lessons.html' %}
    <br>
    {% include 'admin/partials/unfulfilled_lessons.html' %}
  </p>
</div>
{% endblock %}

`

lessons_table_base.html `

代码语言:javascript
复制
<div class="card">
  <div class="card-header">
    <h5 class="card-title">{% block card_title %}{% endblock %}</h5>
      <div class="card-body table-responsive p-0">
        <table class="table table-hover text-nowrap">
          <thead>
            <tr>
              <th>Lesson ID</th>
              <th>Lesson Name</th>
              <th>Student</th>
              <th>Teacher</th>
              <th>Interval (Days)</th>
              <th>Duration (Minutes)</th>
              <th></th>
            </tr>
          </thead>
          <tbody>
          {% for lesson in lessons %}                       
          {% block lessons_content %}
          {% endblock %}
          {% endfor %}
          </tbody>
        </table>
      </div>
  </div>
</div>

`

fulfilled_lessons.html `

代码语言:javascript
复制
{% extends 'admin/partials/lessons_table_base.html' %}
{% load widget_tweaks %}
{% block card_title %}
Fulfilled Requests&nbsp;&nbsp;<i class="bi-send-check-fill"></i>
{% endblock %}
{% block lessons_content %}
{% if not lesson.is_request %}
    <tr>
    <td>{{ lesson.lesson_id }}</td>
    <td>{{ lesson.lesson_name }}</td>
    <td>{{ lesson.student }}</td>
    <td>{{ lesson.teacher }}</td>
    <td>{{ lesson.interval }}</td>
    <td>{{ lesson.duration }}</td>
    <td>
        <!-- admin edit lesson here -->
        <a href="{% url 'admin_update' lesson.id %}">update</a>  
        <!-- admin delete lesson here -->
        <a href="#" class="nav-link" role="button" data-bs-toggle="tooltip" title="Remove lesson">
            <span class="bi-dash-square"></span>
        </a>
    </td>
    </tr>
{% endif %}
{% endblock %}

`

updates_requests.html (将在问题解决后添加更多代码)

代码语言:javascript
复制
{% extends 'admin/admin_home_base.html' %}
{% block admin_content %}
<div>
    <h2  style="text-align:center">
    Update Lesson Request
    </h2>
    <hr class="my-4">
    <p style="text-align:center">
        You can update lessons to the system.
    </p>
    <form action="" method=POST>
        {% csrf_token %}
        {{form.as_p}}
        <input type="submit" value="Update" class="btn btn-secondary">
    </form>
   
</div>
{% endblock %}

`

回溯

代码语言:javascript
复制
Internal Server Error: /admin_managerequests/
Traceback (most recent call last):
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/lessons/views.py", line 55, in AdminManageRequests
    return render(request,'admin/manage_requests.html',{'lessons':lessons})
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/shortcuts.py", line 19, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/loader.py", line 62, in render_to_string
    return template.render(context, request)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/backends/django.py", line 61, in render
    return self.template.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 171, in render
    return self._render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 163, in _render
    return self.nodelist.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 163, in _render
    return self.nodelist.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 163, in _render
    return self.nodelist.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 188, in render
    return template.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 173, in render
    return self._render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 163, in _render
    return self.nodelist.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 163, in _render
    return self.nodelist.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/defaulttags.py", line 209, in render
    nodelist.append(node.render_annotated(context))
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/defaulttags.py", line 309, in render
    return nodelist.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 936, in render
    bit = node.render_annotated(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/base.py", line 903, in render_annotated
    return self.render(context)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/template/defaulttags.py", line 443, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/urls/base.py", line 87, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "/Users/jaeholee/SEG-Small-Group-Project/hyena/venv/lib/python3.10/site-packages/django/urls/resolvers.py", line 677, in _reverse_with_prefix
    raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'admin_update' with arguments '('',)' not found. 1 pattern(s) tried: ['admin_update/(?P<lesson_id>[^/]+)$']

`

我尝试过一些解决办法,但没有奏效。有人能帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-22 18:37:54

它应该是<int:lesson_id>,而不是默认情况下的<lesson_id> (如果没有给定),它被认为是字符串类型,因此:

代码语言:javascript
复制
path('admin_update/<int:lesson_id>/', views.AdminUpdateRequests, name='admin_update'),

我还建议您使用get_object_or_404(),因此:

代码语言:javascript
复制
lesson = get_object_or_404(Lesson,pk=lesson_id)

备注:总是在每条路线的末尾添加/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74537426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档