diff --git a/src/pretix/base/models/base.py b/src/pretix/base/models/base.py index 8814ac7b80..583d0246ba 100644 --- a/src/pretix/base/models/base.py +++ b/src/pretix/base/models/base.py @@ -1,7 +1,7 @@ import json import uuid -from django.contrib.contenttypes.fields import GenericRelation +from django.contrib.contenttypes.models import ContentType from django.db import models from django.db.models.signals import post_delete from django.dispatch import receiver @@ -60,7 +60,6 @@ class LoggingMixin: class LoggedModel(models.Model, LoggingMixin): - logentries = GenericRelation('pretixbase.LogEntry') class Meta: abstract = True @@ -71,4 +70,8 @@ class LoggedModel(models.Model, LoggingMixin): :return: A QuerySet of LogEntry objects """ - return self.logentries.all().select_related('user', 'event') + from .log import LogEntry + + return LogEntry.objects.filter( + content_type=ContentType.objects.get_for_model(type(self)), object_id=self.pk + ).select_related('user', 'event') diff --git a/src/pretix/base/models/log.py b/src/pretix/base/models/log.py index bb6c4b4f5b..c01ef64c66 100644 --- a/src/pretix/base/models/log.py +++ b/src/pretix/base/models/log.py @@ -130,3 +130,6 @@ class LogEntry(models.Model): @cached_property def parsed_data(self): return json.loads(self.data) + + def delete(self, using=None, keep_parents=False): + raise TypeError("Logs cannot be deleted.")