在django中使用GenericForeignKey访问引用对象

在django中使用GenericForeignKey访问引用对象,django,django-models,Django,Django Models,我有以下型号: Class A(models.Model): content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() content_object = generic.GenericForeignKey('content_type', 'object_id') thumbnail = models.ImageField(...) class B

我有以下型号:

Class A(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey('content_type', 'object_id')
    thumbnail = models.ImageField(...)

class B(models.Model)
   title = models.CharField()

   def save(*args, **kwargs):
     # Based on the title field I want to fetch some picture and then save the thumbnail in A
我有更多像B这样的类,它们应该从A引用(这就是我使用GenericForeignKey的原因)。我试图解决的问题是,当我使用B中的
save()
方法时,如何保存缩略图字段(在A上)。在A中插入许多if语句来检查引用类的类型并相应地保存缩略图非常麻烦

B
A

如果知道最常用的模型,还可以添加“反向”通用关系以启用其他API

现在你可以做:

 b = B_Model()
 a = A_Model(content_object=b, thumbnail=...)
 a.save()
 b.a_models.all() 

嘿,提米。谢谢你的回答。。最后一段代码可以在没有泛型关系的情况下完成(如果我错了,请纠正我)。问题是我并不总是能够控制对象创建的顺序(例如,在管理面板中,通过管理脚本创建对象)
 b = B_Model()
 a = A_Model(content_object=b, thumbnail=...)
 a.save()
 b.a_models.all()