我想思考一个模式,列举其所有落后的通用关系。
我的模特看起来是这样的:
class Service(models.Model):
host = models.ForeignKey(Host)
statuses = generic.GenericRelation(Status)
状态对象看起来像 :
class Status(TrackedModel):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey()
class Meta:
verbose_name_plural = statuses
我想在程序上了解, status
是服务模式的通用关系。 这是否可能? status._meta.fields
并不显示 status
,而是 status._meta.get_all_field_names ()
, 仅显示其他不想要的东西 。
我想这可能是个可能的解决办法,但对我来说似乎非常混乱。我很想听到一个更好的解决办法。
from django.db.models.fields import FieldDoesNotExist
from django.contrib.contenttypes import generic
generic_relations = []
for field_name in Service._meta.get_all_field_names():
try:
field = Service._meta.get_field(field_name)
except FieldDoesNotExist:
continue
if isinstance(field, generic.GenericRelation):
generic_relations.append(field)
谢谢!