【问题标题】:How do I add a default value to a variable and store in the database in django?如何将默认值添加到变量并存储在 django 的数据库中?
【发布时间】:2021-10-24 12:41:36
【问题描述】:

我对 Django 框架非常陌生。我已经开始在 django 中使用模型和表单。我在将值存储到数据库时遇到了问题。

我想要这样的东西。

from django.db import models

class attempt(models.Model):
    name = models.TextField(max_length=200)
    department = "Software Development"

现在我想将变量department 存储在数据库中。对于尝试对象的每个条目name 将由用户输入,但department 保持不变。

并且在数据库中存储类似于以下给定格式的内容

id: 1
name: "John Shelby"
department: "Software Development" 

编辑 2: 现在我可以这样做:

from django.db import models

class attempt(models.Model):
    name = models.TextField(max_length=200)
    def function1(str):
        return(str+" Hello World")
    x = function1(name)
    department = models.Charfield(max_length=100,default=x,editable=False)

【问题讨论】:

  • 如果值每次都相同,那么在数据库中存储一些东西是没有意义的。
  • 我以这个为例。我正在使用models.FileField() 将pdf 文档作为用户的输入。我有从中提取数据的代码。但我不知道如何将它保存到数据库中。

标签: python django database django-models


【解决方案1】:

你可以使用defaulthere's the documentation,但基本上你想要的是:

department = models.Charfield(max_length=100, default="Software Development", editable=False)

这将使得每次创建模型时都会在department 字段中为其提供默认值。为了防止更改所述默认值,我添加了editable=False 标签。如果您想添加其他部门,请将其删除,但如果未设置部门,则将 "Software Development" 作为默认部门。

【讨论】:

  • 谢谢巴拉格什。我可以用我的代码做到这一点吗from django.db import modelsclass attempt(models.Model):name = models.TextField(max_length=200)def fun1(name):return(name+"some string")x = fun1(name)department = models.Charfield(max_length=100, default=x, editable=False)
  • @TharunTeja 请使用该问题和代码更新(编辑)原始问题,因为很难从评论中读取代码!
  • @TharunTeja 该类用于模型,可以在模型中实现功能,但必须与之相关,请查看文档docs.djangoproject.com/en/3.2/topics/db/models/#model-methods中的此示例。另外,如果我的答案是您要找的,您可以勾选它。
猜你喜欢
  • 2021-09-05
  • 1970-01-01
  • 2021-02-21
  • 2019-09-21
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-04
相关资源
最近更新 更多