Django обновить поле из базы данных, вычисляемое поле в базе данных - PullRequest
1 голос
/ 06 марта 2020

Новичок в django, есть два вопроса, не могу найти необходимую информацию.

1) У меня есть база данных (SQLite), в которой есть таблица scale_calibration и вес поля. Другое приложение переписывает значение в весе поля 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) Я пытаюсь следовать этой ссылке , чтобы легко вычислить поле (это будет запись в базу данных при сохранении), но у меня нет результатов и нет ошибок, не понимаю, где я допустил ошибку.

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)

Пожалуйста, помогите с советами.

1 Ответ

0 голосов
/ 07 марта 2020

Как упоминал @ david-alford, AJAX - хорошее решение вашей проблемы. Это просто запись JavaScript в ваши шаблоны, которые отправляют запрос каждые n секунд и обновляют вашу веб-страницу, а также вам потребуется новая конечная точка в вашем приложении Django, которая предоставляет значения обновления из вашей модели для этих запросов, которые будут повторяться .

Если это звучит странно или сложно, взгляните на некоторые AJAX примеры с Django и не стесняйтесь задавать более конкретные c вопросы для уточнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...