我正在创建艺术家预订网络应用程序,并且我在导航栏上有一个艺术家的下拉列表,例如名人、舞者、模特,因此当我单击其中任何一个时,它应该从数据库中呈现该列表。 我根据选择存储艺术家
这是我的 models.py:
from django.db import models
class Artist(models.Model):
CHOICES = (
(0, 'celebrities'),
(1, 'singer'),
(2, 'comedian'),
(3, 'dancer'),
(4, 'model'),
(5, 'Photographer')
)
artist_name = models.CharField(max_length=50)
artist_type = models.IntegerField(choices=CHOICES)
description = models.TextField(max_length=500)
def __str__(self):
return self.artist_name
views.py:
def talent(request):
artists = Artist.objects.all()
context = {
'aka': artists
}
return render(request, 'main_site/talent.html', context)
当我渲染它时,它会获取所有列表,但我需要一个特定的列表,就像当我单击舞者时它应该只获取舞者。
这是base.html 导航栏:
<ul class="menu-horizontal text-left ">
<li><a href={% url 'mainsite-index'%} class="menu-horizontal text-left nav-font">Home</a></li>
<li><a href={% url 'mainsite-about'%} class="menu-horizontal text-left nav-font">About</a></li>
<li class="dropdown"> <a href="#" class="menu-horizontal text-left dropdown-toggle nav-font" data-toggle="dropdown">Artist</a></li>
</ul>
<ul class="dropdown-menu nav-font" style="margin-top: 7px">
<li> <a href={% url 'mainsite-talent' %} style="color:grey;padding-left:5px">Celebrities</a></li>
<li> <a href={% url 'mainsite-talent' %} style="color:grey;padding-left:5px">Singer</a></li>
<li> <a href={% url 'mainsite-talent' %} style="color:grey;padding-left:5px">Comedian</a></li>
<li> <a href={% url 'mainsite-talent' %} style="color:grey;padding-left:5px">Dancer</a></li>
<li> <a href={% url 'mainsite-talent' %} style="color:grey;padding-left:5px">Model</a></li>
<li> <a href={% url 'mainsite-talent' %} style="color:grey;padding-left:5px">Photographer</a></li>
</ul>
url.py:
from django.urls import path
from. import views
urlpatterns = [
path('',views.index, name='mainsite-index'),
path('about/',views.about, name='mainsite-about'),
path('contact/', views.contact, name='mainsite-contact'),
path('artist/',views.talent, name='mainsite-talent'),
path('book_artist/', views.artist_booking, name='artist_book')
]
人才.html:
{% for talent in aka %}
<h2>{{ talent.artist_name }}</h2>
{% endfor %}
最佳答案
您可以使用“filter ”过滤 django ORM 您可能需要将艺术家的类型作为参数发送到 View 。
网址:
path('artist/<int:artist_type>/',views.talent, name='mainsite-talent'),
View .py
def talent(request, artist_type):
artists = Artist.objects.filter(artist_type=artist_type)
context = {
'aka': artists
}
return render(request, 'main_site/talent.html', context)
关于python - 根据django的选择从数据库中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56680994/