当前位置: 首页 > 面试题库 >

如何在Django中使用动态外键?

闽焕
2023-03-14
问题内容

我想将一个连接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)

这可能吗?


问题答案:

这是我的方法:

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)

到文章和演员表

contenttypes
docs



 类似资料:
  • 问题内容: 给定一堂课: 是否有可能(如果有的话)拥有一个基于动态参数进行过滤的QuerySet?例如: 问题答案: Python的参数扩展可用于解决此问题: 这是一个非常常见且有用的Python习惯用法。

  • 问题内容: 我试图应用与作用域变量相同的类名。 例如: 以便将的值添加到类中。不过,这似乎没有任何作用。有关如何执行此操作的任何建议? 谢谢! 编辑: 这实际上是使用ng-options在select中完成的。例如: 现在,我想应用一个具有以下值的类名: 我发现以下指令似乎有效,但无法对该值进行插值: 问题答案: 我使用的是角度1.5.5,但这些解决方案都不适合我。 尽管仅在这里的最后一个示例中显

  • 问题内容: 我听说过redis-cache,但是它是如何工作的呢?通过以某种方式缓存rdbms查询,它是否被用作Django和我的rdbms之间的一层? 还是应该直接将其用作数据库?我对此表示怀疑,因为该github页面不包含任何登录详细信息,所以没有设置..只是告诉您设置一些config属性。 问题答案: 这个Redis的Python模块在自述文件中有一个清晰的用法示例:http : //git

  • 问题内容: 我正在尝试为我的Django对象获取唯一的ID。在Django 1.8中,它们具有UUIDField。我不确定如何使用此字段来为模型中的每个对象生成唯一的ID。 这是我对UUIDField的要求 我可以重现UUID模型的ID,但是每次我都得到完全相同的ID。:(。 例如: id然后每次都给我相同的id。怎么了,我该如何解决?感谢您的帮助! 问题答案: 我不确定为什么要创建UUID模型。

  • 问题内容: 从Internet的一些示例中,我做了下面的测试代码。有用! …但是,如果我重新加载页面,则饼图将使用相同的图像进行绘制。每次重新加载页面时,某些部件的颜色都会变深。当我重新启动开发服务器时,它将被重置。如何在Django中使用Matplotlib正确绘制?看起来好像还记得一些图纸… 源views.py(让urls.py链接到它): 我正在使用Django 1.0.1和Python 2

  • 问题内容: 我想用datepicker实现django表单。我做了我的forms.py views.py balance.html 而且在该表格的输入框中仍然没有日期选择器。我也尝试像在balance.html中一样在脚本中包含文件链接 datepicker仍然无法正常工作。但是,当在我的html文件中包含jquery时,这也使得我在我的html文件中实现的jquery-treetable无法工作

  • 问题内容: 我正在尝试使用Go解析YAML文件。问题在于YAML文件中的密钥可能并不总是相同。这是为了进行API版本控制,以便用户可以定义他们支持的版本。例如V1,V2,V3等。它们不需要按顺序排列,并且可以省略它们不支持的版本,例如V0,V2,V5等。 这是最高层,我还没有从结构内部弄清楚如何做到这一点。 问题答案: 首先,您尝试将根解析为,但其实际类型为。其次,如果要保留该类型结构,则需要一个

  • 我正在尝试使用 Go 解析 YAML 文件。问题是 YAML 文件中的键可能并不总是相同的。这是为了执行 API 版本控制,以便用户可以定义他们支持的版本。例如 V1、V2、V3 等。它们不需要按顺序排列,可以省略它们不支持的版本,即 V0、V2、V5 等。 我在这里看到一个类似的问题 这是顶层,我还没有完全弄清楚如何从结构内部执行此操作。