在django中,如果要实现这样的功能:比如一个评论模块,即可以对文章进行评论,也可以对用户的提问进行评论,这时,就要使用Django的GenericRelation。
一、导入
它的导入在GenericForeignKey后面直接加上GenericRelation即可。
二、定义comment类
content_type、object_id这两个的名字不要修改,因为GenericForeignKey默认的参数名就是这两个。
comment表变成了一张通用的表,让其他模型类关联到这张表,object_id是其他模型类的主键。
三、在需要调用的模块使用这个类。
参考:
Django高级实战 开发企业级问答网站\第8章 GenericRelation关联模型类与RequestFactory类测试视图 8-5节。