【问题标题】:Django renew field from database,calculated field in DatabaseDjango从数据库更新字段,数据库中的计算字段
【发布时间】:2020-03-06 20:42:10
【问题描述】:

django 的新手,有两个问题,找不到需要的信息。

1) 我有具有表 scale_calibration 和字段权重的数据库 (SQLite)。其他应用程序每秒重写字段权重值 1-2 次。 Django 中是否有可能在不更新浏览器(F5)的情况下更新该字段?

models.py:

from django.db import models

class Calibration(models.Model):
mean_weight = models.FloatField(editable=True)
hours_to_export = models.PositiveIntegerField(default=4, editable=True)
weight = models.FloatField(editable=True)

admin.py:

from django.contrib import admin
from .models import Calibration
# Register your models here.
admin.site.register(Calibration)

2) 我尝试按照that link 制作简单的计算字段(保存时将写入数据库),但我没有结果也没有错误,不明白我在哪里做错了。

models.py:

from django.db import models

class Calibration(models.Model):
    mean_weight = models.FloatField(editable=True)
    hours_to_export = models.PositiveIntegerField(default=4, editable=True)
    weight = models.FloatField(editable=True)
    calibration_factor = models.FloatField(editable=True)
    @property
    def get_calibration(self):
        return self.weight/self.mean_weight


def save(self, *args, **kwarg):
        self.calibration_factor = self.get_calibration()
        super(Calibration, self).save(*args, **kwarg)

请提供建议。

【问题讨论】:

  • 我想你正在寻找 AJAX

标签: python django field


【解决方案1】:

正如@david-alford 提到的,AJAX 是解决您问题的好方法。这只是在您的模板中编写 JavaScript,每 n 秒发出一个请求并更新您的网页,您还需要在您的 Django 应用程序中提供一个新端点,该端点提供来自您的模型的更新值以重复此请求。

如果这听起来很奇怪或复杂,请查看AJAX examples with Django,并随时提出更具体的问题以进行澄清。

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 2021-03-04
    • 2013-02-19
    • 2010-11-30
    • 2013-03-27
    相关资源
    最近更新 更多