python - 表单从模型接收旧数据

标签 python django python-3.x django-models django-forms

我有一个表格,它应该从模型中存储的最新条目中接收初始值。但是,如果我通过管理面板编辑或删除模型数据,表单中显示的初始数据将保持不变(尽管它已在模型中删除)。我很困惑我做错了什么。一开始我以为是Chrome保存旧数据,但是用ctr+shift+r休息后还是一样。

我的表格.py:

from stv.models import BazineKaina,

class DrgSkaiciuokle(forms.Form):
    bazine_kaina = forms.DecimalField(max_digits=5, decimal_places=2, required=True,
                                      label="Įveskite bazinę kainą:",
                                      initial= BazineKaina.objects.latest('data'),
                                      )


    def clean_bazine_kaina(self):
        bazine_kaina = self.cleaned_data['bazine_kaina']
        return bazine_kaina

我的模型.py:

class BazineKaina(models.Model):

    bazka = models.DecimalField(max_digits=5, decimal_places=2)

    data = models.DateField(auto_now=False, auto_now_add=True)

    def __str__(self):
        return str(self.bazka)

    class Meta:
        verbose_name_plural = "Bazinė kaina"
        get_latest_by = 'data'

请帮我找出为什么旧数据仍然通过表单接收?

编辑:我发现,如果我重新启动服务器数据将被刷新,但这不是生产中的解决方案。如何让表单在每次调用时都获取新数据?

最佳答案

您的 DrgSkaiciuokle 在 Django 启动时导入,然后实例化任何 类属性。因此,当您runserver 或启动您的 Django worker 时,对 .latest() 的查询将执行一次,并且 initial 将不再更改。

在表单的 __init__ 方法中设置 initial,这样每次实例化表单时都会调用它。

关于python - 表单从模型接收旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58115123/

相关文章:

python : How to add root node to an XML

python - 是否可以找到或匹配两个具有不同特殊字符的名称django

python - 如何在 Django 中编写此插入语句?

Django 信号重定向

python - 将两列数据框转换为多索引系列

python - 检查 Python 输入是否包含关键字列表

python - 根据函数输出替换字符串

python - 如何在 django 过滤器中使用选择字段值过滤对象

python - print(tabulate(...)) 漂亮地打印 multiIndex pandas ?

python 将调试日志记录到标准输出中