【发布时间】:2019-09-28 05:42:31
【问题描述】:
使用related lookups,我可以轻松访问我必须拥有通用外键的所有模型。显然,这不是我想做的。我想将其限制为我拥有的模型的子集——特别是从抽象模型Registry 继承的所有模型。
我的模型如下所示:
class Registry(models.Model):
"""A base registry class."""
number = models.BigAutoField(primary_key=True)
when = models.DateField(default=timezone.now)
title = models.CharField(
max_length=1024, default='', blank=True, null=True)
class Meta:
"""The meta class."""
abstract = True
[…]
class Revision(models.Model):
"""A revision model."""
when = models.DateTimeField(default=timezone.now)
identification = models.BigIntegerField()
content_type = models.ForeignKey(
ContentType, on_delete=models.CASCADE, related_name='+')
object_id = models.PositiveIntegerField()
parent = GenericForeignKey('content_type', 'object_id')
[…]
class Document(Registry):
[…]
class Drawing(Registry):
[…]
这样每个Registry 派生实例可以有许多不同的修订版。
以及相关管理员:
class RevisionAdmin(admin.ModelAdmin):
"""Revision administration definition."""
fieldsets = [
('Revision', {
'fields': [
'when',
'identification',
]
}),
('Registry', {
'classes': ('grp-collapse grp-open',),
'fields': ('content_type', 'object_id', )
}),
]
【问题讨论】:
标签: django python-3.x django-grappelli