可以通过以下方法实现:
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.db import models
class ModelA(models.Model):
model_b_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
model_b_id = models.PositiveIntegerField()
model_b = GenericForeignKey('model_b_type', 'model_b_id')
# 其他字段
class ModelB(models.Model):
# 字段定义
def get_related_fields(model_a, model_b):
related_fields = []
for field in model_a._meta.fields:
if isinstance(field, GenericForeignKey) and field.ct_field == 'model_b_type':
related_fields.append(field.name)
return related_fields
related_fields = get_related_fields(ModelA, ModelB)
print(related_fields)
以上代码会返回一个包含关联字段名的列表。这样,你就可以动态获取关联两个Django模型的字段名。
关于Django模型的更多信息和使用方法,请参考腾讯云的Django 文档。
领取专属 10元无门槛券
手把手带您无忧上云