Django не может получить доступ к словарю, переданному из представления в шаблон - PullRequest
0 голосов
/ 25 июня 2019

Я новичок и пробую свои силы в джанго. После значительных поисков я все еще не могу найти, почему я получаю ошибку NoReverseMatch. Мой код ниже, любая помощь приветствуется. У меня такое чувство, что это глупая ошибка.

Мой Urls.py

urlpatterns=[
    path('signup/', views.SignUpView, name='signup'),
    path('checklist/',views.checklist,name='checklist'),
    path('mybatches/',views.MyBatches.as_view(),name='mybatches'),
    path('chklistforbatch/<int:pk>',views.CheckListForBatches.as_view(),name='chklistforbatch'),
]

И я включил эти URL в проект url.py.

My Views.py

class CheckListForBatches(LoginRequiredMixin, generic.ListView):
    model = ChkListForBatch
    form_class = ChkListForBatchForm
    template_name = 'checklistforbatch.html'

    def get_queryset(self):
        batch_id = self.kwargs.get('pk')
        print(self.kwargs.get('pk'))
        selected_batch = CourseBatch.objects.filter(id=batch_id)
        print(selected_batch[0].pk)    
        chkListItems = ChkListForBatch.objects.filter(batch=selected_batch[0].pk)
        print(chkListItems[0].chkpoint_done)
        return chkListItems #batch[0].checklistitems.all()

    def get(self, request, *args, **kwargs):
        print("inside get")
        form = self.form_class()        
        obj_list = self.get_queryset()
        return render(request, self.template_name, {'object_list':obj_list})

    def post(self, request, *Args, **kwargs):
        form = self.form_class(request.POST)
        print("inside post")
        print(form)
        if form.is_valid():
            return HttpResponseRedirect("/accounts/mybatches/")
        return  render(request,'checklistforbatch.html',{'form': form})

Мой шаблон

{% block title %}My Batches{% endblock %}

{% block content %}
    <h1>{{object_list.0.pk}}</h1>    
    <form action="{% url 'chklistforbatch' object_list.0.pk %}" method="POST">        
        {% csrf_token %}
        {% for field in object_list  %}        
            <li> 
                <label><input {% if field.chkpoint_done %} checked="checked" {% endif %} type="checkbox" name="{{ field }}" value="{{ field }}">{{field}}</label> 
            </li>            
        {% endfor %}
        <button type="submit" value="POST">Update</button>
    </form>
{% endblock %}

Я получаю следующую ошибку

django.urls.exceptions.NoReverseMatch: обратное для chklistforbatch с аргументами '(' ',)' не найдены. 1 шаблон (ы) пробовал: [ 'Счета / chklistforbatch / (? P [0-9] +) $']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...