(我是django初学者)我有一个要求,在我的网页中使用Django模型的下拉菜单需要有来自第三方服务器的实时/动态数据。
例如。当前模型的数据是emp1,emp2,但如果第三方服务器添加emp3,那么当用户刷新网页时,我应该能够在我的网页中显示emp1,emp2,emp3。
我如何使用django模型实现这一点?(我知道我们可以在没有Django模型的情况下通过直接从网页进行ajax调用来做到这一点,但由于安全限制,我不能这样做,所以我必须在后端获取这些数据,而使用Django模型目前我只能在服务器启动时获取数据库中的数据一次,而不能在第三方服务器更新其数据库时获取数据)。
发布于 2021-10-24 20:10:10
我想我找到了解决我被困在其中的具体情况的答案。我将尽我所能在这里回答这个问题,以便对其他人有所帮助:
我之前在views
函数中的问题代码:
for key in sorted(myvar):
value = City(name=key)
value.save()
for items in myvar[key]:
value2 = Country(name=items,site=value)
value2.save()
因此,上面的代码基本上是从myvar变量中存储的数据更新我的名为City和Country的模型。
但是,每次页面加载时,我都会更新模型(以便模型具有最新和最新的数据数据)。但这使得当多个用户使用该网页时,模型数据不一致。例如,当用户A加载网页时,他或她获得了一些内容,现在当用户B加载网页时,他或她获得了一些其他内容,因为我的views.py已经用myvar
中的最新数据更新了模型。这对用户B来说不是问题,但对用户A来说却是一个问题,因为它依赖于不再存在的旧模型数据。
我是如何解决这个问题的
通过检查我添加的数据在模型中是否已经存在,我将仅在数据不存在时更新模型(我正在使用.exists()
函数验证这一点)。
for key in sorted(myvar):
if City.objects.filter(name = key).exists():
pass
else:
value = City(name=key)
value.save()
for items in myvar[key]:
value2 = Country(name=items,site=value)
value2.save()
至少,通过这种方式,只有在需要根据myvar
中的新内容更新模型时,模型数据才会更新。
https://stackoverflow.com/questions/69699830
复制相似问题