【问题标题】:Django : I want another web page to load inside a divDjango:我希望在 div 中加载另一个网页
【发布时间】:2021-01-18 13:48:56
【问题描述】:

我是 Django 新手,我有一个简单的提交按钮,在复选框中选择多个选项后单击该按钮。单击后,结果会显示在不同的页面上。我希望结果显示在同一页面本身(假设在提交按钮下方)或者可能在提交按钮下方的 div 内。

以下是供您参考的代码:

#template - homepage.html

<form method="GET" action="{% url 'book:homepage.html' %}">
            {{ genre_form }}
            {{ author_form }}
<button type="submit" class="btn btn-primary btn-md submitB">FILTER IT</button>
</form>

#views.py

@require_http_methods(["GET"])
  def search_results_view(request):
  genre_choices = request.GET.getlist("genre_choices")
  author_choices = request.GET.getlist("author_choices")
  posts = Post.objects.all()
   if genre_choices:
    posts = posts.filter(genres__id__in=genre_choices)
   if author_choices:
    posts = posts.filter(author__id__in=author_choices)
   return render(request, 'homepage.html',{'posts': posts})

#urls.py

app_name = 'book'
urlpatterns = [
path('', views.homepage, name='homepage'),
path('results/', search_view, name='post-search-results'),#ignore
path('search/', SearchResultsView.as_view(), name='search_results'), #ignore
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我希望这些信息对您有所帮助。现在,该功能运行良好,但结果显示在不同的页面上。我希望结果显示在主页上,上面的代码是我尝试过的,但它不起作用。

请帮忙。

更新:按照要求,我已在主页本身中添加了输出(我希望结果在其中,但仍然没有帮助)

{% for post in posts %}        
    {{ post }}
{% endfor %}

【问题讨论】:

  • 因为您是 stackoverflow 的新手。我有建议,总是在问题细节中提供代码。对于这个问题,添加前端(html 部分)和后端(django 视图)
  • 很抱歉。我现在已经添加了代码和额外的细节。太感谢了。任何帮助表示赞赏。

标签: django django-models django-rest-framework django-views django-templates


【解决方案1】:

您的代码看起来不错!始终提供从视图传递数据的前端部分。这可能是问题所在,请使用您在对(前端)部分的视图中提到的字典posts。您可能在项目的其他地方使用了 posts,这就是它呈现到该页面的原因。

【讨论】:

  • 我假设您的意思是在我想要的页面上使用帖子作为输出。我在主页本身上使用了它。我已经编辑了我的原始帖子并添加了你提到的这段代码。请参考。
猜你喜欢
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-23
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 2012-05-24
相关资源
最近更新 更多