Я создаю блог, в котором пользователи могут нажимать на несколько <li>
элементов на боковой панели, чтобы отображать сообщения блога в соответствии с выбранной категорией.
Желаемый результат несколько соответствует официальной документации , так что я получу /blog/category
и соответствующие сообщения в блоге.
Проблема в том, что если я захожу на главную страницу (или http://127.0.0.1: 8000 / в разработке) возникает ошибка
render_blog() missing 1 required positional argument: 'category'
Итак, как я могу использовать вид render_blog
как для главной страницы, так и для категорий, выбранных для отображения соответствующих сообщений в блоге?
html
<li class="navigation-item" id="spotlights-item">
<div id="spotlights-ctn"><a href="/HotStocks">Hot Stocks</a><img id="fire-icon" src="{% static 'images/fire.svg' %}" alt="finsphere.io"></div>
</li>
URL
urlpatterns = [
path('AsiaPacific/<category>', render_blog, name='AsiaPacific'),
url(r'^$', render_blog, name='render_blog'),
]
views.py
def render_blog(request, category):
category = category
if not category:
# Main blog as landing page
# Get 5 latest posts and order by publish date, newest first
posts = Post.objects.filter(publish_date__lte=now).order_by('-publish_date')[:5]
return render(request, 'blog/blog.html', {'posts': posts})
else:
# Blog displayed as Category Selection
posts = Post.objects.filter(categories__title=category, publish_date__lte=now)
return render(request, 'blog/blog.html', {'posts': posts})