【发布时间】:2016-07-19 07:05:16
【问题描述】:
我有 2 个项目在 2 个不同的系统上运行。(称它们为 A 和 B)
在 A 中,我有一个具有一个动态选择字段的模型。
class ModelA(models.Model):
field1 = models.CharField(max_length=255, choices=get_field1_list())
#..some more fields
在get_field1_list() 函数中,我调用了一个在系统 B 上运行的 API,它返回来自 ModelB(项目 B)的元组列表(选择字段中需要)
[(a,A), (b,B), (c,C)...]
现在,当我从管理面板更改此模型 (ModelB) 时(假设又添加了一行),所以我期望它应该反映在模型 A 的选择中。 我刷新了管理面板,但它仍然没有显示。但是当我重新启动服务器 A(本地服务器)时,我可以在 ModelA(系统 A)选项中看到新添加的(在系统 B 中)行。
所以我的问题是为什么会发生这种情况?我该如何解决这个问题,因为在生产中我可能不想每次都重新启动 uwsgi 或 nginx。
【问题讨论】:
-
choices在这种情况下不是动态的。这是get_field1_list在第一次调用时返回的内容。用ModelA.field1 = ForeignKey(ModelB)设置ModelA和ModelB之间的关系不是更好吗? -
它们都是独立的项目..我无法导入和直接使用外键
标签: python django django-models django-forms django-admin