Как я могу фильтровать это в django?

Я работаю над проектом Django (типа LMS) и хочу фильтровать Лекции по Предмету в шаблоне, я сделал это однажды, но теперь забыл как это сделать. Как я могу это сделать?!
Я хочу фильтровать по иностранному ключу Subject в Lecture
. Вот мой models.py

from django.db import models
from django.utils.text import slugify

# Create your models here.

class Subject(models.Model):
    Title = models.CharField(max_length=150)
    Pic = models.ImageField(upload_to='media/')
    Test = models.CharField(max_length=300, null=True, blank=True)
    Slug = models.SlugField(unique=True, null=True, blank=True)

    def save(self, *args, **kwargs):
        self.Slug = slugify(self.Title, allow_unicode=True)
        super(Subject, self).save(*args, **kwargs)

    def __str__(self):
        return self.Title

class Lecture(models.Model):
    Subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
    Title = models.CharField(max_length=150)
    Video = models.CharField(max_length=300)
    More_Info = models.TextField()
    Audio_Lecture = models.CharField(max_length=300)
    Lecture_Files = models.CharField(max_length=300)
    Sheet = models.CharField(max_length=300)
    Slug = models.SlugField(unique=True, null=True, blank=True)

    def save(self, *args, **kwargs):
        self.Slug = slugify(self.Title, allow_unicode=True)
        super(Lecture, self).save(*args, **kwargs)

    def __str__(self):
        return self.Title

и вот мой views.py

from Diploma.models import Lecture, Subject
from django.shortcuts import render

# Create your views here.

def Diploma(request):
    return render(request, 'Diploma/diploma.html', context={
        'sub' : Subject.objects.all(),
    })

def Diploma_Subject(request, slug):
    subject_Lecture = Subject.objects.all()
    return render(request, 'Diploma/subject.html', context={
        'subj' : subject_Lecture,
        'lect' : Lecture.objects.filter(I do not know what I should write here)
    })

Если вы хотите отфильтровать модель Lecture на основе параметра slug, вам нужно сделать следующее:

lecture = Lecture.objects.filter(Slug=slug).first()
if lecture is not None:
    # lecture.Subject, lecture.Title ...

Или если вы хотите фильтровать на основе свойства slug в модели Subject вы можете сделать следующее:

lectures = Lecture.objects.filter(Subject__Slug=slug)
for lecture in lectures:
    # lecture.Subject, lecture.Title ...
empty:
    print('There are any lectures related')

Здесь есть много вещей, которые нужно объяснить, но я попытался дать вам минимальный воспроизводимый пример, чтобы вы могли настроить его для достижения своей цели.

Не стесняйтесь оставлять комментарии, если у вас есть конкретные сомнения в понимании этого.

Вернуться на верх