注意:这个问题是关于django.core.serialize,而不是django-field-history
现在,我正在使用一个名为“ django-field-history”的简洁小插件。我指定要跟踪的字段,并且只要其中一个字段发生更改,此插件就会创建日志。
对我来说,事情有点复杂,因为我要跟踪的模型是继承的模型:
from polymorphic.models import PolymorphicModel
from accounts.models import Account
class Website(PolymorphicModel):
account = models.OneToOneField(
Account, blank=True, null=True,
on_delete=models.SET_NULL, verbose_name=_('Account'))
# Track account field with django-field-history
field_history = FieldHistoryTracker([
'account',
])
class WordpressWebsite(Website):
wp_external_id = models.CharField(
max_length=L, unique=True, validators=[validate_external_id])
因此django-field-history的工作原理是,它基本上调用django.core.serialize来序列化它正在跟踪的现有对象,并将序列化的数据存储到数据库中。序列化发生here。
我做了一些研究,发现“字段”是空的,因为模型是子类而不是根类。
如何为WordpressWebsite
指定默认的序列化方法,以便调用serialize.serialize('json', wordpress_website, field_names=['account'])
会返回类似[{"model": "websites.website", "pk": 242, "fields": {"account": 349}}]
的内容
?