Я хочу использовать таблицу «многие ко многим», чтобы указать, какие специальности я хочу отобразить на странице моего сайта.
Model.py
from django.db import models
class Major(models.Model):
name = models.CharField(max_length=30, db_index=True)
class School(models.Model):
name = models.CharField(max_length=50, db_index=True)
school_Major_merge = models.ManyToManyField(Major, through='School_Major')
class School_Major(models.Model):
major = models.ForeignKey(Major, on_delete=models.CASCADE)
school = models.ForeignKey(School, on_delete=models.CASCADE)
class professor(models.Model):
ProfessorIDS = models.IntegerField()
ProfessorName = models.CharField(max_length=100)
ProfessorRating = models.DecimalField(decimal_places=2,max_digits=4)
NumberofRatings = models.CharField(max_length=50)
#delete major from the model
school = models.ForeignKey(School , on_delete=models.CASCADE)
major = models.ForeignKey(Major , on_delete=models.CASCADE)
def __str__(self):
return self.ProfessorName
views.py
from django.http import HttpResponse
from django.shortcuts import render
from .models import professor, School , School_Major, Major
def index(request):
# professors = professor.objects.all()
# return render(request, 'locate/index.html', {'professors': professors})
schools = School.objects.all()
return render(request, 'locate/index.html', {'schools': schools})
def Major(request, Major):
major_choice = professor.objects.filter(Major =Major)
return render(request, 'locate/major.html', {'major_choice': major_choice})
url.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('<str:Major>/', views.Major, name='Major')
]
В основном я пытаюсь выяснить, как записать свои взглядыгде При выборе конкретной школы я мог бы использовать School_Major, чтобы конкретно указать, какие специальности отображать в моем основном разделе моего сайта,
в моем index.html У меня есть следующий цикл for
<ul>
{% for list in schools %}
<li><a href="{% url 'view' '{{list.id}}' %}">{{list.name}}</a></li>
<br><br>
{%endfor%}
</ul>
'view' , являющийся функцией, которая берет в School School и использует таблицу School_Major, чтобы указать, какие Majors доступны для этой школы, и отобразить Majors
У меня будут примеры фотографий каждой таблицы для большей наглядности.
Школа
Школа Major
Major