Sql Django中的双外键?

Sql Django中的双外键?,sql,django,foreign-keys,Sql,Django,Foreign Keys,在Django中是否有双外键模型 例如,如果我有表格:音频、叠加、html 和表格:timeline_项,它有一个字段id,和一个字段类别,指定音频、覆盖或html 有人知道我将如何在Django中进行建模吗?或者,如果可能的话?外键是两个表之间的引用约束,因此不能让一列引用三个不同表上的三列 见: 如果您想让它有所不同,我相信代码最好能够演示: class Category(models.Model): TYPES = ( ('audio', 'audio'), ('ove

在Django中是否有双外键模型

例如,如果我有表格:音频、叠加、html 和表格:timeline_项,它有一个字段id,和一个字段类别,指定音频、覆盖或html


有人知道我将如何在Django中进行建模吗?或者,如果可能的话?

外键是两个表之间的引用约束,因此不能让一列引用三个不同表上的三列

见:

如果您想让它有所不同,我相信代码最好能够演示:

class Category(models.Model):
  TYPES = (
    ('audio', 'audio'),
    ('overlay', 'overlay'),
    ('html', 'html'),
  )
  type = models.CharField(choices=TYPES)

class Audio(models.Model):
  category = models.OneToOneField(Category)
  additional_column_for_audio = models. ...
  #...
# same for overlay and html

class Item(models.Model):
  # id is automatically added
  category = models.ForeignKey(Category)
然后您可以迭代项目并执行如下操作:

{% for item in items %}
  {% if item.category.type == "audio" %}
     {{ item.category.audio.additional_column_for_audio }}
  {% endif %}
{% endfor %}

听起来像是多态关联。也许您可以使用该框架解决Django的泛型关系问题。

我最终使用的是:


在此之前,我使用的是类中定义的另一个方法,该方法需要两个外键,它们只是将字段字典映射到它们的类并返回该对象类型。

我猜我只是在谷歌上搜索了错误的单词:),非常感谢,我可以使用它。MySQL和postgres现在都支持多表关系。我可以用简单的sql来实现这一点,但在django中如何实现这一点我遇到了麻烦。我喜欢你的解决方案,但它不像我希望使用的那样优雅。