model
class Genre(models.Model): genre = models.CharField(max_length=100, null=True) def __str__(self): return self.genre class anime(models.Model): anime_name = models.CharField(max_length=100, default="") description = models.CharField(max_length=1000, null=True) Genre = models.ManyToManyField(Genre) Season = models.IntegerField(null=True) Episodes = models.CharField(max_length=100,null=True) IMDB_Rating = models.FloatField(null=True) #Image = def __str__(self): return self.anime_name
view
def g(request, G): animes = anime.objects.filter(Genre=G) x = {'animes': animes} return render(request, 'Anime/genre.html', x)
urls
path('genre/<G>/', views.g, name="main"),`
Advertisement
Answer
You should filter on the genre
field of the Genre
, so:
def g(request, G): animes = anime.objects.filter(Genre__genre=G) x = {'animes': animes} return render(request, 'Anime/genre.html', x)
Note: Models in Django are written in PascalCase, not snake_case, so you might want to rename the model from
toanime
Anime
.