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

@ -0,0 +1,19 @@
# Generated by Django 4.2.2 on 2023-06-28 03:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('subjects', '0002_subjectstudent_subject_students'),
('accounts', '0002_initial'),
]
operations = [
migrations.AddField(
model_name='customuser',
name='subjects',
field=models.ManyToManyField(related_name='SubjectStudent_user', through='subjects.SubjectStudent', to='subjects.subject'),
),
]

View file

@ -54,6 +54,8 @@ class CustomUser(AbstractUser):
on_delete=models.CASCADE,
null=True
)
subjects = models.ManyToManyField(
'subjects.Subject', through='subjects.SubjectStudent', related_name='SubjectStudent_user')
@property
def full_name(self):

View file

@ -1,5 +1,6 @@
from djoser.serializers import UserCreateSerializer as BaseUserRegistrationSerializer
from djoser.serializers import UserSerializer as BaseUserSerializer
from rest_framework import serializers
from accounts.models import CustomUser
from student_status.serializers import StudentStatusSerializer
from student_status.models import StudentStatus
@ -12,13 +13,13 @@ class CustomUserSerializer(BaseUserSerializer):
class Meta(BaseUserSerializer.Meta):
model = CustomUser
fields = ('username', 'email', 'password',
'student_id_number', 'year_level', 'semester', 'course', 'avatar', 'first_name', 'last_name', 'is_banned', 'user_status')
'student_id_number', 'year_level', 'semester', 'course', 'subjects', 'avatar', 'first_name', 'last_name', 'is_banned', 'user_status')
class UserRegistrationSerializer(BaseUserRegistrationSerializer):
class Meta(BaseUserRegistrationSerializer.Meta):
fields = ('username', 'email', 'password',
'student_id_number', 'year_level', 'semester', 'course', 'avatar', 'first_name', 'last_name')
'student_id_number', 'year_level', 'semester', 'course', 'subjects', 'avatar', 'first_name', 'last_name')
def create(self, validated_data):
# Get the user's year_level and semester from the user model instance