Получить данные из базы данных на основе выбора Django - PullRequest
1 голос
/ 20 июня 2019

Я создаю веб-приложение бронирования артистов, и у меня есть выпадающий список артистов, таких как знаменитости, танцоры, модели, на панели навигации, поэтому при нажатии на любого из них он должен отображать этот список из базы данных. Я храню художника на основе выбора

Это мои 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 navbar:

<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>

urls.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')
]

talent.html:

{% for talent in aka %}
   <h2>{{ talent.artist_name }}</h2>
{% endfor %}

1 Ответ

0 голосов
/ 20 июня 2019

Вы можете отфильтровать в django ORM, используя " filter ". Вам, вероятно, нужно будет указать тип исполнителя для представления в качестве параметра.

urls:

path('artist/<int:artist_type>/',views.talent, name='mainsite-talent'),

views.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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...