Максимальная глубина рекурсии при применении фильтра Listing в django
Я пытаюсь реализовать Listing Filter из фильтров django. Первый "type" - это атрибут, на котором я хочу, чтобы основывался мой фильтр внутри models.py моего приложения.
class detaileditems(models.Model):
title = models.CharField(max_length= 255)
type = models.CharField(max_length= 45, null=True)
pubdate = models.DateTimeField()
body = models.TextField()
image = models.ImageField(upload_to= 'images/')
Я создал отдельный filters.py внутри моего приложения, где я вызываю фильтры.
import django_filters
from .models import detaileditems
class ListingFilters(django_filters.FilterSet):
class Meta:
model = detaileditems
fields = {'type': ['exact']}
Далее приведена моя функция внутри файла views.py-
from .models import detaileditems from .filters import ListingFilters
def alldetailed2(request):
items = detaileditems.objects
listing_filter = ListingFilters(request.GET, queryset=items)
context = {
'listing_filter' : listing_filter,
'items': items,
}
return render(request, 'detailed2/detailed2.html',context)
Последнее в моем html файле "detailed2.html", который находится внутри папки шаблона приложения "detailed2".
<div class = "col-lg-6 col-md-8 mx-auto">
<form method = "get">
{{ listing_filter.form }}
<button class="btn btn-sm btn-danger" type="submit">Search</button>
</form>
</div>
<div class = "container">
<div class = "row row-cols-1 row-cols-sm2 row-cols-md-3 g-3">
{% for listing in listing_filter.qs %}
<div class = "col">
{% include "detailed2/detailed2.html" %}
</div>
{% endfor %}
</div>
</div>
Я получаю ошибку максимальной глубины рекурсии.
Тут есть более раннее сообщение о максимальной глубине рекурсии: earlier post
Иногда решение может быть найдено путем переосмысления алгоритма, чтобы он использовал итерацию, например, над списком вместо рекурсии. Полагаю, вам нужно убедить себя, что вы не совершаете ошибку, а затем подать проблему в Django.
В качестве быстрого решения вы можете попробовать увеличить глубину рекурсии. См. пост, на который я дал ссылку.
Я вижу ссылку на себя в html:
''' {% include "detailed2/detailed2.html" %} '''
может ли это быть первопричиной ваших проблем?
def alldetailed2(request):
items = detaileditems.objects.all()
<
<
<
Полагаю, вы пропустили действие формы. Когда вводится ключевое слово, форма должна вызывать ту же функцию, которую вы используете для перечисления всех статей.
<form method = "post" action="{% url 'alldetailed2' %}">
<input type='text' name='articale_name' />
<button class="btn btn-sm btn-danger" type="submit">Search</button>
</form>
в функции просмотра:
article_name = request.POST.get("articale_name")
if article_name:
"filter model with article_name"
else:
list out all the Articles same as earlier