# coding=utf-8 from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType from django.db import models from django.conf import settings from storage.models import Storage class Comment(models.Model): closed = models.BooleanField(verbose_name='Закрыт', default=False, editable=False) user = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Автор') text = models.TextField(verbose_name='Текст', default='') files = models.ManyToManyField(Storage, verbose_name='Прикрепленые файлы', blank=True, editable=False) children = models.ManyToManyField(to='self', blank=True, symmetrical=False) content_type = models.ForeignKey(to=ContentType) object_id = models.PositiveIntegerField() content_object = GenericForeignKey('content_type', 'object_id') def __str__(self): return str(self.id) class Meta: verbose_name = 'Комментарий' verbose_name_plural = 'Комментарии' class Like(models.Model): user = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Автор') is_positive = models.BooleanField(default=True) content_type = models.ForeignKey(to=ContentType) object_id = models.PositiveIntegerField() content_object = GenericForeignKey('content_type', 'object_id') def __str__(self): return str(self.id) + ': ' + 'Лайк' if self.is_positive else 'Дизлайк' class Meta: verbose_name = 'Лайк-дизлайк' verbose_name_plural = 'Лайки-дизлайки'