Added relationship between user and subjects

This commit is contained in:
Keannu Christian Bernasol 2023-06-28 17:12:14 +08:00
parent dc21bb8c32
commit e02d81f6fd
6 changed files with 67 additions and 3 deletions

View file

@ -1,6 +1,6 @@
from django.contrib import admin
from courses.models import Course
from .models import Subject
from .models import Subject, SubjectStudent
class SubjectAdmin(admin.ModelAdmin):
@ -8,3 +8,4 @@ class SubjectAdmin(admin.ModelAdmin):
admin.site.register(Subject, SubjectAdmin)
admin.site.register(SubjectStudent)

View file

@ -0,0 +1,29 @@
# Generated by Django 4.2.2 on 2023-06-28 03:09
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('subjects', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='SubjectStudent',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='subjects.subject')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.AddField(
model_name='subject',
name='students',
field=models.ManyToManyField(related_name='SubjectStudent_subject', through='subjects.SubjectStudent', to=settings.AUTH_USER_MODEL),
),
]

View file

@ -9,6 +9,8 @@ class Subject(models.Model):
code = models.CharField(max_length=16)
courses = models.ManyToManyField(
'courses.Course', through='courses.SubjectCourse', related_name='SubjectCourse_subject')
students = models.ManyToManyField(
'accounts.CustomUser', through='subjects.SubjectStudent', related_name='SubjectStudent_subject')
year_level = models.ForeignKey(
Year_Level,
@ -24,3 +26,13 @@ class Subject(models.Model):
def __str__(self):
return self.name
class SubjectStudent(models.Model):
user = models.ForeignKey(
'accounts.CustomUser', on_delete=models.CASCADE)
subject = models.ForeignKey(
'subjects.Subject', on_delete=models.CASCADE)
def __str__(self):
return f'User: User={self.user_id}, Subject={self.subject_name}'