Django | Не фильтрует вопросы по категориям - PullRequest
1 голос
/ 25 мая 2020

Интернет, в котором вопросы не фильтруются по категориям. Где ошибка? Спасибо!

шаблон

 {% for categoria in categorias %}
       <a href="{{ url 'preguntas'}}/{{ categoria.id }}"><p>{{ categoria.categoriaEUS }}</p></a>
    {% endfor %}

models.py

class Pregunta(models.Model):
    categoria = models.ManyToManyField(Categoria, null=True, blank=True)
    textoES = models.TextField(null=True, blank=True)
    textoEUS = models.ManyToManyField(Euskara, null=True, blank=True)


class Categoria(models.Model):
    categoriaES = models.CharField(max_length=50, null=True, blank=True)
    categoriaEUS = models.CharField(max_length=50, null=True, blank=True)  

views.py

 def pregunta_list(request,categoria_id):
        preguntas = Pregunta.objects.filter(categoria='categoria_id').order_by('id')
        paginator = Paginator(preguntas,1)
        page = request.GET.get('page')
        preguntas = paginator.get_page(page)
        return render(request, 'pregunta/pregunta.html', {'preguntas': preguntas})

    def categoria_list(request):
        categorias = Categoria.objects.all()
        return render(request, 'pregunta/categoria.html', {'categorias': categorias})

urls.py

path('',
    views.pregunta_list,
    name='preguntas/<int:pk>/',
),

1 Ответ

1 голос
/ 25 мая 2020

Вы не можете поместить параметр и имя, поскольку построенный путь не будет содержать этот параметр. Если позже пользователь перейдет по ссылке, то этот параметр не существует. :

{% for categoria in categorias %}
       <a href="<b>{% url 'pregunta_list' categoria_id=categoria.id %}</b>"><p>{{ categoria.categoriaEUS }}</p></a>
{% endfor %}

Вы также использовали строковый литерал вместо идентификатора в представлении:

def pregunta_list(request, categoria_id):
    preguntas = Pregunta.objects.filter(categoria=<b>categoria_id</b>).order_by('id')
    paginator = Paginator(preguntas,1)
    page = request.GET.get('page')
    preguntas = paginator.get_page(page)
    return render(request, 'pregunta/pregunta.html', {'preguntas': preguntas})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...