Django - поле фильтрации в DetailView - PullRequest
0 голосов
/ 16 апреля 2020

Привет всем,

Я создаю приложение Django, которое позволяет пользователям передавать и скачивать музыку c. Однако, есть одна проблема, которую я имею со страницами профиля художников; Я пытаюсь запросить песни исполнителя только в DetailView, так как я воспринимаю это как систему блогов.

Возможно ли это в DetailView? Или мне нужно сделать фильтр? Я искал в Интернете уже несколько дней и не совсем понял, что я могу сделать или как получить указанное поле данных c из модели.

Любая помощь или руководство будут высоко оценены!

class musicartist(DetailView):
model = MusicArtist
template_name = 'RS_MUSIC/artist.html'

# override context data 
def get_context_data(self, *args, **kwargs): 
    context = super(musicartist, self).get_context_data(*args, **kwargs) 
    # add extra field  
    current_band = MusicItems.objects.all().filter(artist=MusicArtist.title)[:1]
    context["songs"] = MusicItems.objects.filter(artist=MusicArtist.objects.all().filter(title=current_band)[:1])
    return context

1 Ответ

0 голосов
/ 16 апреля 2020

удалось выяснить это. Просто нужен следующий код:

class musicartist(DetailView):
model = MusicArtist
template_name = 'RS_MUSIC/artist.html'

def get_context_data(self, **kwargs):
    context = super(musicartist, self).get_context_data(**kwargs)
    context_related = MusicItems.objects.filter(artist=self.object.title)
    context['related'] = context_related
    return context
...