<p>首先,我们需要获得数据库中的所有keyone值,以便传递给主页.html.
然后在主页.html,我们需要一个导航栏或其他地方来放置所有这些链接,这些链接代表所有的keyone值。你知道吗</p>
<p>所以代码是这样的:</p>
<p>你知道吗型号.py你知道吗</p>
<pre><code># app.models.py would remain the same
</code></pre>
<p>你知道吗视图.py你知道吗</p>
<pre><code>def homePageView(request, key):
key2select = Post.objects.filter(keyone=key)
keyones = Post.objects.distinct('keyone')
return render(request, 'home.html', {
'key2select': key2select,
'keyones': keyones
})
</code></pre>
<p>您可以检查<a href="https://docs.djangoproject.com/en/2.2/ref/models/querysets/" rel="nofollow noreferrer">Django Docs</a>中的distinct()以获得DB中某列的distinct值</p>
<p>你知道吗主页.html你知道吗</p>
<pre><code><! home.html >
<nav>
<ul>
{% for key in keyones %}
<li><a href="{% url 'app:home' key%}">somthing {{key}} something</a></li>
{% endfor %}
</ul>
</nav>
...
<ul>
{% for post in key2select %}
<li>{{ post.keyone }}&nbsp &nbsp{{ post.text }}</li>
{% endfor %}
</ul>
</code></pre>
<p>当我们在nav链接中传递url的键时,我们需要更改url模式来捕捉这个。你知道吗</p>
<p>你知道吗网址.py你知道吗</p>
<pre><code>urlpatterns =[
...
path('home/<int:key>/', views.homePageView, name='home')
...
]
</code></pre>