如何在Django中使用动态外键?
发布于 2021-01-29 17:07:21
我想将一个连接ForeignKey
到两个不同的模型。
例如:
我有两个名为Casts
和的模型Articles
,以及第三个模型Faves
,用于收藏其他两个模型。如何进行ForeignKey
动态调整?
class Articles(models.Model):
title = models.CharField(max_length=100)
body = models.TextField()
class Casts(models.Model):
title = models.CharField(max_length=100)
body = models.TextField()
class Faves(models.Model):
post = models.ForeignKey(**---CASTS-OR-ARTICLES---**)
user = models.ForeignKey(User,unique=True)
这可能吗?
关注者
0
被浏览
152
1 个回答
-
这是我的方法:
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes import fields class Photo(models.Model): picture = models.ImageField(null=True, upload_to='./images/') caption = models.CharField(_("Optional caption"),max_length=100,null=True, blank=True) content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() content_object = fields.GenericForeignKey('content_type', 'object_id') class Article(models.Model): .... images = fields.GenericRelation(Photo)
您将添加类似
content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() content_object = fields.GenericForeignKey('content_type', 'object_id')
喜爱和
fields.GenericRelation(Faves)
到文章和演员表