from django.contrib.contenttypes import fields as generic from django.db import models from django.utils.translation import gettext_lazy as _ from utils.models import BaseAttributes class ReviewQuerySet(models.QuerySet): """QuerySets for model Review""" def by_reviewer(self, user): """Return reviews by user""" return self.filter(reviewer=user) class Review(BaseAttributes): """Review model""" reviewer = models.ForeignKey('account.User', related_name='review', on_delete=models.CASCADE, verbose_name=_('reviewer'),) content_object = generic.GenericForeignKey('content_type', 'object_id') language = models.ForeignKey('translation.Language', on_delete=models.CASCADE, related_name='review', verbose_name=_('Review language')) text = models.TextField(verbose_name=_('Text')) objects = ReviewQuerySet.as_manager() class Meta: """Meta class.""" verbose_name = _('Review') verbose_name_plural = _('Reviews')