Как из 4-х таблиц сохронять данные в 5-ю Django

У меня есть 5 таблиц они связаны

class Name(models.Model):
    name = models.TextField()
class Year(models.Model):
    year = models.DateField()

class Author(models.Model):
    author = models.TextField()

class Genre(models.Model):
    genre = models.TextField()

class Main(models.Model):
    name = models.ForeignKey(Name, on_delete = models.CASCADE, null=False)
    year = models.ForeignKey(Year, on_delete = models.CASCADE)
    author = models.ForeignKey(Author, on_delete = models.CASCADE)
    genre = models.ForeignKey(Genre, on_delete = models.CASCADE)

Через Views.py я создал функции с помощью которых могу добавлять записи в 4 таблицы

from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.http import HttpResponseNotFound
from .models import Genre, Name, Author, Year, Main


# получение данных из бд
def index(request):
    name = Name.objects.all()
    genre = Genre.objects.all()
    author = Author.objects.all()
    year = Year.objects.all()
    main = Main.objects.all()
    return render(request, "index.html", {"genre": genre, 'name': name, "author":author, "year": year, "main":main})


def name(request):
    if request.method == "POST":
        name = Name()
        name.name = request.POST.get("name")
        name.save()
    return HttpResponseRedirect("/")
# изменение данных в бд
def edit(request, id):
    try:
        person = Name.objects.get(id=id)
 
        if request.method == "POST":
            person.name = request.POST.get("name")
            person.save()
            return HttpResponseRedirect("/")
        else:
            return render(request, "edit.html", {"person": person})
    except Name.DoesNotExist:
        return HttpResponseNotFound("<h2>Name not found</h2>")
def delete(request, id):
    try:
        name = Name.objects.get(id=id)
        name.delete()
        return HttpResponseRedirect("/")
    except Name.DoesNotExist:
        return HttpResponseNotFound("<h2>Person not found</h2>")


def genre(request):
    if request.method == 'POST':
        genre = Genre()
        genre.genre = request.POST.get("genre")
        genre.save()
        return HttpResponseRedirect("/")
def edit2(request, id):
    try:
        genre = Genre.objects.get(id=id)
 
        if request.method == "POST":
            genre.genre = request.POST.get("genre")
            genre.save()
            return HttpResponseRedirect("/")
        else:
            return render(request, "edit2.html", {"genre": genre})
    except Genre.DoesNotExist:
        return HttpResponseNotFound("<h2>Genre not found</h2>")
def deletegenre(request, id):
    try:
        genre = Genre.objects.get(id=id)
        genre.delete()
        return HttpResponseRedirect("/")
    except Genre.DoesNotExist:
        return HttpResponseNotFound("<h2>Genre not found</h2>")
def author(request):
    if request.method == 'POST':
        author = Author()
        author.author = request.POST.get("author")
        author.save()
        return HttpResponseRedirect("/")
def edit3(request, id):
    try:
        author = Author.objects.get(id=id)
 
        if request.method == "POST":
            author.author = request.POST.get("author")
            author.save()
            return HttpResponseRedirect("/")
        else:
            return render(request, "edit3.html", {"author": author})
    except Author.DoesNotExist:
        return HttpResponseNotFound("<h2>Autor not found</h2>")
def deleteauthor(request, id):
    try:
        author = Author.objects.get(id=id)
        author.delete()
        return HttpResponseRedirect("/")
    except Author.DoesNotExist:
        return HttpResponseNotFound("<h2>Genre not found</h2>")

def year(request):
    if request.method == 'POST':
        year = Year()
        year.year = request.POST.get("year")
        year.save()
        return HttpResponseRedirect("/")
def edit4(request, id):
    try:
        year = Year.objects.get(id=id)
 
        if request.method == "POST":
            year.year = request.POST.get("year")
            year.save()
            return HttpResponseRedirect("/")
        else:
            return render(request, "edit4.html", {"year": year})
    except Year.DoesNotExist:
        return HttpResponseNotFound("<h2>Year not found</h2>")
def deleteyear(request, id):
    try:
        year = Year.objects.get(id=id)
        year.delete()
        return HttpResponseRedirect("/")
    except Year.DoesNotExist:
        return HttpResponseNotFound("<h2>Genre not found</h2>")

@import url('https://fonts.googleapis.com/css2?family=Mohave:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap');

body{
 font-family: 'Mohave', sans-serif;
}
.container{
    display:flex;
    background-color: #DCDCDC;

}

.name{
    display: flex;
    margin-right: 50px;
    border: 2px double black;
    padding: 10px;
    border-radius: 10px;

}



.author{
    display: flex;
    margin-right: 50px;
    border: 2px double black;
    padding: 10px;
    border-radius: 10px;
}

.genre{
    display: flex;
    margin-right: 50px;
    border: 2px double black;
    padding: 10px;
    border-radius: 10px;
}


.year{
    display: flex;
    margin-right: 50px;
    border: 2px double black;
    padding: 10px;
    border-radius: 10px;
}

.main{
    display: flex;
    margin-right: 50px;
    border: 2px double black;
    padding: 10px;
    border-radius: 10px;
}
<!DOCTYPE html>
{% load static %}
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Библиотека</title>
    <link rel="stylesheet" href="{% static "/styles.css" %}" />
</head>

<body class="container">


    <div class="name">
        <form method="POST" action="name/">
            {% csrf_token %}
            <p>
                <label>Введите Название книги</label><br>
                <input type="text" name="name" required=False/>
            </p>
            <input type="submit" value="Сохранить">
            {% if name.count > 0 %}
            <h2>Список Книг</h2>
            <table>
                <thead>
                    <th>Id</th>
                    <th>Имя</th>
                    <th></th>
                </thead>
                {% for name in name %}
                <tr>
                    <td>{{ name.id }}</td>
                    <td>{{ name.name }}</td>
                    <td><a href="edit/{{name.id}}">Изменить</a> | <a href="delete/{{name.id}}">Удалить</a>
                    </td>
                </tr>
                {% endfor %}
            </table>
            {% endif %}
        </form>

    </div>



    <div class="genre">
        <form method="POST" action="genre/">
            {% csrf_token %}
            <p>
                <label>Введите Жанр книги</label><br>
                <input type="text" name="genre" required=False />
            </p>
            <input type="submit" value="Сохранить">

            {% if genre.count > 0 %}
            <h2>Жанр книги</h2>
            <table>
                <thead>
                    <th>Id</th>
                    <th>Жанр</th>
                    <th></th>
                </thead>
                {% for genre in genre %}
                <tr>
                    <td>{{ genre.id }}</td>
                    <td>{{ genre.genre}}</td>
                    <td><a href="edit2/{{genre.id}}">Изменить</a> | <a href="deletegenre/{{genre.id}}">Удалить</a>
                    </td>
                </tr>
                {% endfor %}
            </table>
            {% endif %}
        </form>
    </div>


    <div class="author">
        <form method="POST" action="author/">
            {% csrf_token %}
            <p>
                <label>Введите Автора книги</label><br>
                <input type="text" name="author" required=False />
            </p>
            <input type="submit" value="Сохранить">

            {% if author.count > 0 %}
            <h2>Автор книги</h2>
            <table>
                <thead>
                    <th>Id</th>
                    <th>Автор</th>
                    <th></th>
                </thead>
                {% for author in author %}
                <tr>
                    <td>{{ author.id }}</td>
                    <td>{{ author.author}}</td>
                    <td><a href="edit3/{{author.id}}">Изменить</a> | <a href="deleteauthor/{{author.id}}">Удалить</a>
                    </td>
                </tr>
                {% endfor %}
            </table>
            {% endif %}
        </form>
    </div>




    <div class="year">
        <form method="POST" action="year/">
            {% csrf_token %}
            <p>
                <label>Введите Год издания</label><br>
                <input type="date" name="year" required=False />
            </p>
            <input type="submit" value="Сохранить">
            {% if year.count > 0 %}
            <h2>Год издания</h2>
            <table>
                <thead>
                    <th>Id</th>
                    <th>Год</th>
                    <th></th>
                </thead>
                {% for year in year %}
                <tr>
                    <td>{{ year.id }}</td>
                    <td>{{ year.year }}</td>
                    <td><a href="edit4/{{year.id}}">Изменить</a> | <a href="deleteyear/{{year.id}}">Удалить</a></td>
                </tr>
                {% endfor %}
            </table>
            {% endif %}
        </form>

    </div>




    <div class="main">
        <form method="POST" action="main/">
            {% csrf_token %}     
            <h2>Главная таблица</h2>
            <table>
                <thead>
                    <th>Id</th>
                    <th>Название</th>
                    <th>Жанр</th>
                    <th>Автор</th>
                    <th>Год</th>
                </thead>
            </table>       
        </form>
    </div>

</body>

</html>

Вопрос каким образом можно реализовать заполнение 5-й таблицы беря записи из 4-х

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