如何通过 HTML 中的 JavaScript 在 Django 中保存模型实例
Posted
技术标签:
【中文标题】如何通过 HTML 中的 JavaScript 在 Django 中保存模型实例【英文标题】:How to save model instance in Django through JavaScript in HTML 【发布时间】:2021-06-11 02:47:31 【问题描述】:我正在构建一个 BlogApp,但遇到了一个问题
我要做什么
我在模型中创建了一个名为user_location
的实例。我在template
中访问它,并编写javascript
代码以使用JavaScript
访问User's Location
但我希望我的模型实例将 JavaScript's Output country
保存在数据库中。
问题
我不知道如何通过 JavaScript 保存模型实例。
models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,default='',unique=True)
full_name = models.CharField(max_length=100,default='')
user_location = models.CharField(mac_length=100,default'')
profile.html
<script>
$.ajax(
url: "https://geolocation-db.com/jsonp",
jsonpCallback: "callback",
dataType: "jsonp",
success: function(location)
$('#country').html(location.country_name);
);
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div>Country: <span id="country"></span></div>
#This is my model instance.
profile.user_location
我尝试了什么
我也试过THIS。但它对我不起作用。
我不知道该怎么办。
任何帮助将不胜感激。
提前致谢。
【问题讨论】:
【参考方案1】:您可以使用 fetch api from javascript 将来自 javascript 的数据存储在您的模型数据库中,例如 fetch(您的网站路由),您在其中创建了您的表单以进行发布请求。 您可以在您的路线上创建发布请求以保存您的数据库。 Example-url = "您的网站发布请求路由" 参数 = 方法:'发布', 标题: “内容类型”:“应用程序/json”
body: data
fetch(url, params).then(response=> response.json())
.then(data => console.log(data)
)*/
【讨论】:
你能解释一下干净吗? 哦,我已经粘贴了完整的 javascript 代码,但我不知道为什么代码被破坏了我可以给出建议来阅读 javascript 的 fetch api,或者如果你使用 jQuery ajax,你可以使用发布请求,它将发布你的数据到你的数据库 好的,谢谢,我会在几分钟内尝试【参考方案2】:使用 Ajax 将您的数据发送到后端,让 django 完成。
【讨论】:
但是我该怎么做呢?我以前从未使用过ajax将数据保存在db中。 使用Ajax将你的数据发送到django,接收后使用django保存。 但我希望它在没有保存按钮的情况下保存。我的意思是它应该自动保存数据。 什么动作应该触发保存功能?以上是关于如何通过 HTML 中的 JavaScript 在 Django 中保存模型实例的主要内容,如果未能解决你的问题,请参考以下文章
如何通过javascript删除html5音频播放器中的源音频文件
如何使用 JavaScript 删除 iFrame 中的 HTML 元素
如何通过 JavaScript 获取 html 表格 td 单元格值?
如何通过 Carousel 中的 Javascript 代码更改背景图像?