代码之家  ›  专栏  ›  技术社区  ›  Density 21.5

Django管理界面中的exclusive或foreignkey

  •  0
  • Density 21.5  · 技术社区  · 16 年前

    在Django中,有没有一种方法可以强制管理用户选择填充少数几个外键中的一个而不是多个?

    我有一个模型,类似于:

    class URL(models.Model):
        ...
        links = models.URLField(_('Google Links'),verify_exists=True,unique=True)
        project = models.ForeignKey(Project,blank=True,null=True)
        category = models.ForeignKey(Category,blank=True,null=True)
        person = models.ForeignKey(ExternalPerson,blank=True,null=True)
        ...
    

    我希望管理员用户选择ForeignKeys项目、类别或人员之一。 或者我应该以不同的方式组织模型?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Jesus Benito    16 年前

    只是一些想法…

    我不知道您稍后要对这些对象做什么,但是您是否考虑为所有对象创建一个公共接口?它可以解决你的问题…

    如果界面不适合您,也许您可以创建一个表单来检查是否只选择了一个foreignkey。

        2
  •  3
  •   user443850    15 年前

    我所做的就是拥有一个指向基本模型的外键,所有其他模型(谷歌链接、项目等)都从这个基础模型继承。这似乎维持了双方的关系,同时又将外键限制在一个选项上。