signals for text field

This commit is contained in:
alex 2019-12-24 13:40:27 +03:00
parent 069a2ad2a8
commit 92e5f7a40b
2 changed files with 30 additions and 8 deletions

View File

@ -1,13 +1,8 @@
"""Admin page for app Review""" """Admin page for app Review"""
from . import models
from django.contrib import admin from django.contrib import admin
from utils.admin import BaseModelAdminMixin from utils.admin import BaseModelAdminMixin
from . import models
class ReviewTextAuthorInline(admin.TabularInline):
"""ReviewTextAuthor inline."""
model = models.ReviewTextAuthor
extra = 0
@admin.register(models.Review) @admin.register(models.Review)
@ -15,7 +10,6 @@ class ReviewAdminModel(BaseModelAdminMixin, admin.ModelAdmin):
"""Admin model for model Review.""" """Admin model for model Review."""
raw_id_fields = ('reviewer', 'child', 'country') raw_id_fields = ('reviewer', 'child', 'country')
inlines = [ReviewTextAuthorInline, ]
@admin.register(models.ReviewTextAuthor) @admin.register(models.ReviewTextAuthor)

View File

@ -1,7 +1,11 @@
"""Review app models.""" """Review app models."""
from pprint import pprint
from django.contrib.contenttypes import fields as generic from django.contrib.contenttypes import fields as generic
from django.core.validators import MinValueValidator, MaxValueValidator from django.core.validators import MinValueValidator, MaxValueValidator
from django.db import models from django.db import models
from django.db.models.signals import post_init, post_save
from django.dispatch import receiver
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from utils.models import (BaseAttributes, TranslatedFieldsMixin, from utils.models import (BaseAttributes, TranslatedFieldsMixin,
@ -93,6 +97,30 @@ class Review(BaseAttributes, TranslatedFieldsMixin):
verbose_name_plural = _('Reviews') verbose_name_plural = _('Reviews')
@receiver(signal=post_init, sender=Review)
def post_init_handler(instance, **kwargs):
instance.original_text = instance.text
@receiver(signal=post_save, sender=Review)
def post_save_handler(instance, **kwargs):
new_text = instance.text
old_text = instance.original_text
if new_text != old_text:
for locale in new_text:
if locale in old_text:
pass
else:
# TODO: для добавленной локали создать запись в ReviewTextAuthor
pass
# TODO: для измененной локали создать или обновить запись в ReviewTextAuthor
# TODO: для удаленной локали удалить соответствующую запись в ReviewTextAuthor
pprint(instance.text)
pprint(instance.original_text)
class ReviewTextAuthor(ProjectBaseMixin): class ReviewTextAuthor(ProjectBaseMixin):
author = models.ForeignKey( author = models.ForeignKey(
'account.User', 'account.User',