Change Comment model from abstract to PolymorphicMPTTModel

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent a0259ded99
commit ea77f06356
  1. 48
      apps/course/migrations/0020_auto_20180202_1716.py
  2. 10
      apps/course/models.py

@ -0,0 +1,48 @@
# Generated by Django 2.0.2 on 2018-02-02 17:16
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import polymorphic_tree.models
class Migration(migrations.Migration):
dependencies = [
('contenttypes', '0002_remove_content_type_name'),
('course', '0019_auto_20180130_1630'),
]
operations = [
migrations.AlterModelOptions(
name='coursecomment',
options={'base_manager_name': 'objects', 'ordering': ('tree_id', 'lft'), 'verbose_name': 'Комментарий курса', 'verbose_name_plural': 'Комментарии курсов'},
),
migrations.AlterModelOptions(
name='lessoncomment',
options={'base_manager_name': 'objects', 'ordering': ('tree_id', 'lft'), 'verbose_name': 'Комментарий урока', 'verbose_name_plural': 'Комментарии уроков'},
),
migrations.RemoveField(
model_name='coursecomment',
name='parent',
),
migrations.RemoveField(
model_name='lessoncomment',
name='parent',
),
migrations.AddField(
model_name='comment',
name='parent',
field=polymorphic_tree.models.PolymorphicTreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='children', to='course.Comment'),
),
migrations.AddField(
model_name='comment',
name='polymorphic_ctype',
field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_course.comment_set+', to='contenttypes.ContentType'),
),
migrations.AlterField(
model_name='comment',
name='author',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]

@ -3,7 +3,7 @@ from django.db import models
from django.utils import timezone
from django.contrib.auth import get_user_model
from mptt.models import MPTTModel, TreeForeignKey
from polymorphic_tree.models import PolymorphicMPTTModel, PolymorphicTreeForeignKey
from .manager import CategoryQuerySet
@ -123,9 +123,10 @@ class Material(models.Model):
ordering = ('title',)
class Comment(MPTTModel):
author = models.ForeignKey(User, on_delete=models.PROTECT)
class Comment(PolymorphicMPTTModel):
content = models.TextField('Текст комментария', default='')
author = models.ForeignKey(User, on_delete=models.CASCADE)
parent = PolymorphicTreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True, on_delete=models.PROTECT)
created_at = models.DateTimeField(auto_now_add=True)
update_at = models.DateTimeField(auto_now=True)
@ -142,11 +143,9 @@ class Comment(MPTTModel):
class MPTTMeta:
order_insertion_by = ['-created_at']
abstract = True
class CourseComment(Comment):
parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True, on_delete=models.PROTECT)
course = models.ForeignKey(Course, on_delete=models.CASCADE, related_name='comments')
class Meta(Comment.Meta):
@ -155,7 +154,6 @@ class CourseComment(Comment):
class LessonComment(Comment):
parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True, on_delete=models.PROTECT)
lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE, related_name='comments')
class Meta(Comment.Meta):

Loading…
Cancel
Save