Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python NoReverseMatch at/availability/1/edit/Reverse for';可用性列表';没有找到任何参数。已尝试:[';可用性\/(?P<;pk>;[0-9]+;)\\\/列表$';]_Python_Django - Fatal编程技术网

Python NoReverseMatch at/availability/1/edit/Reverse for';可用性列表';没有找到任何参数。已尝试:[';可用性\/(?P<;pk>;[0-9]+;)\\\/列表$';]

Python NoReverseMatch at/availability/1/edit/Reverse for';可用性列表';没有找到任何参数。已尝试:[';可用性\/(?P<;pk>;[0-9]+;)\\\/列表$';],python,django,Python,Django,当我尝试1)创建一个新对象(CreateView)或2)编辑一个现有对象(UpdateView)时,使用Django 3会出现这个错误。使用CBV和ModelForms 我探讨了有关Stackoverflow的类似问题。很多时候,这是关于模板缺少pk引用,但我三次检查,似乎不是这样 有什么想法吗 这是我的密码: URL path('availability/<int:pk>/list', views.AvailabilityListView.as_view(), name='avai

当我尝试1)创建一个新对象(CreateView)或2)编辑一个现有对象(UpdateView)时,使用Django 3会出现这个错误。使用CBV和ModelForms

我探讨了有关Stackoverflow的类似问题。很多时候,这是关于模板缺少pk引用,但我三次检查,似乎不是这样

有什么想法吗

这是我的密码:

URL

path('availability/<int:pk>/list', views.AvailabilityListView.as_view(), name='availability_list'),
path('availability/new/', views.AvailabilityCreateView.as_view(), name='availability_new'),
path('availability/<int:pk>/edit/', views.AvailabilityUpdateView.as_view(), name='availability_edit'),
class AvailabilityUpdateView(UpdateView):
    template_name = 'crm/availability_form.html'
    form_class = AvailabilityForm
    model = Availability

class AvailabilityUpdateView(UpdateView):
    template_name = 'crm/availability_form.html'
    form_class = AvailabilityForm
    model = Availability

class AvailabilityListView(TemplateView):
    template_name = 'crm/availability_list.html'

    def get_context_data(self, **kwargs):
        user = self.request.user
        kwargs['availabilities'] = Availability.objects.filter(staff__manager=Manager.objects.get(user=user)).filter(staff=self.kwargs['pk'])
        return super().get_context_data(**kwargs)
class AvailabilityForm(forms.ModelForm):

    class Meta():
        model = Availability
        exclude = []
class Availability(models.Model):
    staff = models.ForeignKey(Staff, on_delete=models.CASCADE)
    start = models.DateTimeField()
    end = models.DateTimeField()

    class Meta:
        verbose_name_plural = "Availabilities"

    def get_absolute_url(self):
        return reverse('staff_list')
表格

path('availability/<int:pk>/list', views.AvailabilityListView.as_view(), name='availability_list'),
path('availability/new/', views.AvailabilityCreateView.as_view(), name='availability_new'),
path('availability/<int:pk>/edit/', views.AvailabilityUpdateView.as_view(), name='availability_edit'),
class AvailabilityUpdateView(UpdateView):
    template_name = 'crm/availability_form.html'
    form_class = AvailabilityForm
    model = Availability

class AvailabilityUpdateView(UpdateView):
    template_name = 'crm/availability_form.html'
    form_class = AvailabilityForm
    model = Availability

class AvailabilityListView(TemplateView):
    template_name = 'crm/availability_list.html'

    def get_context_data(self, **kwargs):
        user = self.request.user
        kwargs['availabilities'] = Availability.objects.filter(staff__manager=Manager.objects.get(user=user)).filter(staff=self.kwargs['pk'])
        return super().get_context_data(**kwargs)
class AvailabilityForm(forms.ModelForm):

    class Meta():
        model = Availability
        exclude = []
class Availability(models.Model):
    staff = models.ForeignKey(Staff, on_delete=models.CASCADE)
    start = models.DateTimeField()
    end = models.DateTimeField()

    class Meta:
        verbose_name_plural = "Availabilities"

    def get_absolute_url(self):
        return reverse('staff_list')
型号

path('availability/<int:pk>/list', views.AvailabilityListView.as_view(), name='availability_list'),
path('availability/new/', views.AvailabilityCreateView.as_view(), name='availability_new'),
path('availability/<int:pk>/edit/', views.AvailabilityUpdateView.as_view(), name='availability_edit'),
class AvailabilityUpdateView(UpdateView):
    template_name = 'crm/availability_form.html'
    form_class = AvailabilityForm
    model = Availability

class AvailabilityUpdateView(UpdateView):
    template_name = 'crm/availability_form.html'
    form_class = AvailabilityForm
    model = Availability

class AvailabilityListView(TemplateView):
    template_name = 'crm/availability_list.html'

    def get_context_data(self, **kwargs):
        user = self.request.user
        kwargs['availabilities'] = Availability.objects.filter(staff__manager=Manager.objects.get(user=user)).filter(staff=self.kwargs['pk'])
        return super().get_context_data(**kwargs)
class AvailabilityForm(forms.ModelForm):

    class Meta():
        model = Availability
        exclude = []
class Availability(models.Model):
    staff = models.ForeignKey(Staff, on_delete=models.CASCADE)
    start = models.DateTimeField()
    end = models.DateTimeField()

    class Meta:
        verbose_name_plural = "Availabilities"

    def get_absolute_url(self):
        return reverse('staff_list')
模板

{% block body_block %}
  <div class="container">
    <div class="heading">
      <h1>Availability</h1>
      <a class = 'btn btn-primary' href="{% url 'availability_new' %}">+Create new availability</a>
    </div>
    <hr/>
    {% if availabilities %}
    <table class="table">
      <tbody>
        {% for availability in availabilities %}
        <tr>
          <td>{{availability.pk}}</td>
          <td>{{availability.staff}}</td>
          <td>{{availability.start}}</td>
          <td>{{availability.end}}</td>
          <td>
            <a href="{% url 'availability_edit' pk=availability.pk %}">Edit</a>
          </td>
        </tr>
        {% endfor %}
      </tbody>
    </table>
    {% else %}
    <p class='empty'>Staff does not have any availability</p>
  {% endif %}
  </div>
{% endblock %}
{%block body\u block%}
可利用性

{%if可用性%} {availabilities%%中的可用性百分比} {{availability.pk}} {{availability.staff} {{availability.start} {{availability.end} {%endfor%} {%else%}

员工没有任何空闲时间

{%endif%} {%endblock%}
问题标题中的错误表示您在某处试图调用
反向
,而没有任何
主键
AvailabiltyList
视图在哪里?你能把它和你的其他观点一起发布吗?(另外,我没有看到您使用模型上的
staff_list
视图。)您需要使用
re_path
而不是
path
谢谢您的反馈!是的,我刚刚用AvailabiltyList视图更新了这个问题。我花了一些时间,意识到更新和删除模板都称为AvailabiltyList视图,但没有为其分配pk。出于某种原因,我认为错误与当前模板有关,但与更新和删除模板有关。我的不好。只是为了让其他处于类似情况的人更清楚:更新和删除模板称为AvailabilitList视图(例如:{%url'可用性\列表'%}}),但没有为其分配pk(例如:{%url'可用性\列表'pk=availability.pk%})。我的困惑来自这样一个事实,即通常“列表”不需要pk分配。但是在这里,我使用视图AvailabiltyList名称中的“list”来指代特定用户的可用性列表(实际上是一个详细视图)。因此,它需要pk分配。