From 1c602ae89b93e6116ac6464a5db13113702a2593 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bodor=20M=C3=A1t=C3=A9?= <bodor.mate@kszk.bme.hu> Date: Mon, 14 Jan 2019 17:01:00 +0100 Subject: [PATCH] Add created_by field to serializer --- .../migrations/0004_auto_20190114_1641.py | 20 +++++++++++++++ .../migrations/0005_auto_20190114_1658.py | 25 +++++++++++++++++++ src/homework/models.py | 21 ++++++++++------ src/homework/serializers.py | 6 ----- 4 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 src/homework/migrations/0004_auto_20190114_1641.py create mode 100644 src/homework/migrations/0005_auto_20190114_1658.py diff --git a/src/homework/migrations/0004_auto_20190114_1641.py b/src/homework/migrations/0004_auto_20190114_1641.py new file mode 100644 index 0000000..a8c1133 --- /dev/null +++ b/src/homework/migrations/0004_auto_20190114_1641.py @@ -0,0 +1,20 @@ +# Generated by Django 2.0.1 on 2019-01-14 15:41 + +import common.middleware +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('homework', '0003_auto_20190113_1239'), + ] + + operations = [ + migrations.AlterField( + model_name='solution', + name='created_by', + field=models.ForeignKey(default=common.middleware.CurrentUserMiddleware.get_current_user_profile, on_delete=django.db.models.deletion.DO_NOTHING, related_name='solution', to='account.Profile'), + ), + ] diff --git a/src/homework/migrations/0005_auto_20190114_1658.py b/src/homework/migrations/0005_auto_20190114_1658.py new file mode 100644 index 0000000..720bbc2 --- /dev/null +++ b/src/homework/migrations/0005_auto_20190114_1658.py @@ -0,0 +1,25 @@ +# Generated by Django 2.0.1 on 2019-01-14 15:58 + +import common.middleware +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('homework', '0004_auto_20190114_1641'), + ] + + operations = [ + migrations.AlterField( + model_name='solution', + name='task', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='solutions', to='homework.Task'), + ), + migrations.AlterField( + model_name='task', + name='created_by', + field=models.ForeignKey(default=common.middleware.CurrentUserMiddleware.get_current_user_profile, on_delete=django.db.models.deletion.DO_NOTHING, related_name='tasks', to='account.Profile'), + ), + ] diff --git a/src/homework/models.py b/src/homework/models.py index 0e5ec4e..2f3e785 100755 --- a/src/homework/models.py +++ b/src/homework/models.py @@ -1,13 +1,15 @@ from django.db import models -from django.core import validators - -from common.validators import FileSizeValidator +from common.middleware import CurrentUserMiddleware from account.models import Profile - class Task(models.Model): - created_by = models.ForeignKey(Profile, on_delete=models.DO_NOTHING) + created_by = models.ForeignKey( + Profile, + on_delete=models.DO_NOTHING, + related_name='tasks', + default=CurrentUserMiddleware.get_current_user_profile, + ) created_at = models.DateTimeField(auto_now_add=True, editable=False) updated_at = models.DateTimeField(auto_now=True, editable=False) title = models.CharField(max_length=150) @@ -19,8 +21,13 @@ class Task(models.Model): class Solution(models.Model): - task = models.ForeignKey(Task, related_name='solution', on_delete=models.CASCADE) - created_by = models.ForeignKey(Profile, related_name='solution', on_delete=models.DO_NOTHING) + task = models.ForeignKey(Task, related_name='solutions', on_delete=models.CASCADE) + created_by = models.ForeignKey( + Profile, + related_name='solution', + on_delete=models.DO_NOTHING, + default=CurrentUserMiddleware.get_current_user_profile, + ) created_at = models.DateTimeField(auto_now_add=True, editable=False) updated_at = models.DateTimeField(auto_now=True, editable=False) note = models.TextField() diff --git a/src/homework/serializers.py b/src/homework/serializers.py index d2615a1..595260d 100755 --- a/src/homework/serializers.py +++ b/src/homework/serializers.py @@ -6,8 +6,6 @@ from . import models class TaskSerializer(serializers.ModelSerializer): - created_by = serializers.HiddenField(default=CurrentUserProfileDefault()) - class Meta: model = models.Task read_only_fields = ('created_by', 'created_at', 'updated_at') @@ -20,10 +18,6 @@ class TaskSerializer(serializers.ModelSerializer): class SolutionSerializer(serializers.ModelSerializer): - created_at = serializers.DateTimeField(read_only=True) - updated_at = serializers.DateTimeField(read_only=True) - created_by = serializers.HiddenField(default=CurrentUserProfileDefault()) - class Meta: model = models.Solution read_only_fields = ('created_by', 'created_at', 'updated_at', 'ready', 'files') -- GitLab