Как использовать внешний ключ в django, чтобы иметь наборы элементов?
Models.py
from django.db import models
# Create your models here.
class Project_types(models.Model):
project_type = models.CharField(max_length=200)
def __str__(self):
return self.project_type
class Projects(models.Model):
project_types = models.ForeignKey(Project_types, on_delete=models.CASCADE)
project = models.CharField(max_length=200)
def __str__(self):
return self.project
class SourceCode(models.Model):
project = models.ForeignKey(Projects, on_delete=models.CASCADE)
source_code = models.CharField(max_length=99999)
def __str__(self):
return self.source_code
Views.py
from django.shortcuts import render
from .models import Project_types, Projects
def homepage(response):
data = Project_types.objects.all()
return render(response, 'main/homepage.html', {'project_types': data})
def hacks(response):
return render(response, 'main/hacks.html', {'hacking_projects':"n"})
def games(response):
type = Project_types(project_type='games')
t = type.projects_set.all()
return render(response, 'main/games.html', {'gaming_projects': t})
main/games.html
<!DOCTYPE html>
<html>
<head>
<title>My Gaming Projects</title>
</head>
<body>
<header>My Gaming Projects</header>
<p>{{gaming_projects}}</p>
</body>
</html>
Проблема в том, что когда я захожу в админку django, у меня есть проект с именем "gaming project" под типом проекта 'games'. Однако при отображении его на моем сайте он просто показывает пустой запрос.
Эта строка:
type = Project_types(project_type='games')
Необходимо:
type = Project_types.objects.get(project_type='games')