首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Django模型在网页上显示动态数据?

如何使用Django模型在网页上显示动态数据?
EN

Stack Overflow用户
提问于 2021-10-24 18:50:01
回答 1查看 46关注 0票数 0

(我是django初学者)我有一个要求,在我的网页中使用Django模型的下拉菜单需要有来自第三方服务器的实时/动态数据。

例如。当前模型的数据是emp1,emp2,但如果第三方服务器添加emp3,那么当用户刷新网页时,我应该能够在我的网页中显示emp1,emp2,emp3。

我如何使用django模型实现这一点?(我知道我们可以在没有Django模型的情况下通过直接从网页进行ajax调用来做到这一点,但由于安全限制,我不能这样做,所以我必须在后端获取这些数据,而使用Django模型目前我只能在服务器启动时获取数据库中的数据一次,而不能在第三方服务器更新其数据库时获取数据)。

EN

回答 1

Stack Overflow用户

发布于 2021-10-24 20:10:10

我想我找到了解决我被困在其中的具体情况的答案。我将尽我所能在这里回答这个问题,以便对其他人有所帮助:

我之前在views函数中的问题代码:

代码语言:javascript
运行
复制
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()函数验证这一点)。

代码语言:javascript
运行
复制
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中的新内容更新模型时,模型数据才会更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69699830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档