Как сделать ссылку на страницу в Django - PullRequest
0 голосов
/ 11 сентября 2018

Что мне нужно сделать, так это то, что мне нужно перейти в представление списка в другое представление списка. Но мне нужно отфильтровать более поздний вид списка по нажатой ссылке. Что тогда является атрибутом фильтра?

У меня есть модель студента с пакетом (sbtc), мне нужно передать более поздний вид списка с фильтром выбранной партии.

@method_decorator(login_required, name='dispatch')
class FindStudent(ListView):
    template_name = 'Dashboard/findStudent.html'
    model = Student
    fields = ['sbtc']

    def get_queryset(self):
        batch = Student.objects.values_list('sbtc').distinct()
        return batch

@method_decorator(login_required, name='dispatch')
class FindStudentdetail(ListView):
    template_name = 'Dashboard/findStudentdetail.html'
    model = Student
    fields = ['all']

    def get_queryset(self):
        student = Student.objects.filter(sbtc=#here what will be)
        return student

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018
def get_queryset(self):
    student = Student.objects.filter(sbtc=self.kwargs['pk'])
    return student
0 голосов
/ 11 сентября 2018

В своем шаблоне вы можете просто добавить ссылку на шаблон findStudentDetail; вот модифицированный пример из документов :

<h1>Articles</h1>
<ul>
{% for article in object_list %}
    <li>{{ article.pub_date|date }} - {{ article.headline }}</li>\
    <a href="/articleDetail.html?smbc={{article.smbc}}">View Detail</a>
{% empty %}
    <li>No articles yet.</li>
{% endfor %}
</ul>

Затем в представлении ответа вы можете просто получить параметр GET с помощью kwargs:

class FindStudentdetail(ListView):
    template_name = 'Dashboard/findStudentdetail.html'
    model = Student
    fields = ['all']

    def get_queryset(self):
        student = Student.objects.filter(sbtc=self.kwargs['sbtc'])
        return student
...