NoReverseMatch в ListView с формой - PullRequest
0 голосов
/ 05 мая 2018

Я получил ошибку после добавления формы в мой ListView класс.

вот мой models.py

class Holiday(models.Model):
    name = models.CharField(max_length=100)
    date_from = models.DateField()
    date_to = models.DateField(null=True)

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse("app:holiday_list"

вот мой views.py

class HolidayListView(ListView):
    context_object_name = 'holidays'
    model = models.Holiday

class HolidayCreateView(CreateView):
    fields = ('name', 'date_from', 'date_to')
    model = models.Holiday

а вот мой holiday_list.html

....

<form method="post" action="{% url 'holiday-create' %}">
      {% csrf_token %}
      <input type="text" name="name" maxlength="100" required="" id="id_name">
      <input type="text" name="date_from" required="" id="id_date_from">
      <input type="text" name="date_to" required="" id="id_date_to">

      <input type="submit" class="btn btn-primary" value="Submit">

</form>
....
some code to list all data

и мой urls.py

url(r'^/$',views.HolidayListView.as_view(), name='holiday_list'),
url(r'^create/$',views.HolidayCreateView.as_view(),name='holiday-create'),

я получил ошибку:

NoReverseMatch at /app/holiday/
Reverse for 'holiday-create' not found. 'holiday-create' is not a valid view function or pattern name.

я что-то пропустил.

1 Ответ

0 голосов
/ 05 мая 2018

Судя по вашей Holiday модели, вы используете пространство имен app. URL в вашем шаблоне должен указывать это.

<form method="post" action="{% url 'app:holiday-create' %}">
...