【问题标题】:Django- how to establish relationships between different apps?Django-如何在不同的应用程序之间建立关系?
【发布时间】:2016-10-26 20:36:09
【问题描述】:

(请记住,这仍然是 Django 的初学者)我创建我的第一个 Django 应用程序已经有一段时间了。在其中,我有一个代表地理区域的模型。这意味着该模型的每个实例都有代表地图上不同区域的目的。这个应用没问题。

我添加了第二个应用,一个可重复使用的应用,到我的项目,名为 django-forms-builder,可以在这里找到:

https://github.com/stephenmcd/django-forms-builder

这个应用程序允许我在 Django Admin 中创建自定义表单,效果很好。但它们与我自己的应用程序中的任何内容“独立”/“分离”。

我想建立一些连接,从第二个应用程序的这些表格,到我自己的应用程序的区域模型,因此,特定表格可以与地图上的特定区域相关联。

这真的让我很困惑,因为我只使用过一个应用程序。我已经阅读了'django-forms-builder'应用程序中的models.py文件,它们是抽象的,所以在这里建立模型之间的外键关系似乎是不可行的,因此我完全迷失了,没有线索可循.

所以我的问题是如何在不同的 Django 应用程序之间建立关系?我觉得可能有一个 Django 概念,除了模型外键之外的一些想法,我可以学习来实现这一点,并且我根本不知道。

【问题讨论】:

  • 所以你想要一个表单的实例(或条目)(来自 form_builder),每个模型代表一个来自第一个应用程序的地理位置?
  • 我希望能够添加多个“每个区域一个表单”。但是您的回答肯定让我重回正轨,我将从这里尝试通过 admin.TabularInline 插件在我的应用程序的 admin.py 文件中处理这个细节,因此可以将多个表单“添加”到地区。

标签: django django-models django-forms django-admin


【解决方案1】:

你有非抽象模型there
有了这些,您应该能够将表单绑定到特定的“位置”:

from forms_builder.forms.models import Form


class Location(models.Model):
    ...
    form = models.ForeignKey(Form, related_name='locations')

通过这种方式,您可以创建表单并将其关联到多个位置(我猜/希望这就是您所追求的)。

【讨论】:

  • 这解决了我的问题。现在,当我在管理员中创建一个区域时,我可以选择将表单与其关联,甚至在弹出窗口中创建一个现在表单。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2018-02-26
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2013-02-20
相关资源
最近更新 更多