当前位置: 首页 > 面试题库 >

如何在Django数据库模型的字段中存储字典

辛锦
2023-03-14
问题内容

我需要将字典保存在模型字段中。我怎么做?

例如,我有此代码:

def create_random_bill(self):
    name_chars = re.compile("[a-zA-Z0-9 -_]")
    bill_name = "".join(random.choice(name_chars for x in range(10)))
    rand_products = random.randint(1,100)
    for x in rand_products:
        bill_products = 
    new_bill = Bill.new(name=bill_name, date=datetime.date, products=bill_products)
    new_bill.save()

我应该为“ bill_products =“写什么,以便从我的产品模型到此帐单保存一些随机产品?

这是账单的模型说明:

class Bill(models.Model):
    name = models.CharField(max_length=255)
    date = models.DateTimeField(auto_now_add=True)
    products = models.ManyToManyField(Product, related_name="bills")

以及产品的型号说明:

class Product(models.Model):
    name = models.CharField(max_length=255)
    price = models.IntegerField()

如果还有什么我要补充的请发表评论。谢谢!


问题答案:

我刚刚发现了django-jsonfield软件包,该软件包

是可重用的Django字段,可让您在模型中存储经过验证的JSON。

看起来是实现所需目标的可行选择。



 类似资料:
  • 问题内容: 我需要在Django模型中存储一些数据。这些数据并不等于模型的所有实例。 最初,我考虑过将模型子类化,但是我试图保持应用程序的灵活性。如果使用子类,则每次需要新的对象时都需要创建一个整个类,这是不好的。我还将最终得到很多子类,仅用于存储一对额外的字段。 我真的觉得词典是最好的方法,但是Django文档中没有关于在Django模型中存储词典的内容(或者我找不到它)。 有什么线索吗? 问题

  • 问题内容: 我正在执行以下操作: 返回以下内容: 我只想知道此字段是“ URLField”。如何从此输出中提取出来? 注意:我这样做是为了对字段进行验证。例如,如果是url,我想检查它是否格式正确。 问题答案: 如果你这样做: 结果你可能无法获得。 相反,你正在这样做: 其中,作为解释在这里,不调用该方法,它只是指的是方法绑定方法的对象。返回值不是该绑定方法对象的一部分,它是在调用方法时由方法创建

  • 问题内容: Django有各种可用于模型的数字字段,例如DecimalField和PositiveIntegerField。尽管前者可以限制为存储的小数位数和总字符数,但是有没有办法将其限制为仅存储一定范围内的数字,例如0.0-5.0? 失败了,有什么方法可以限制PositiveIntegerField只存储例如最大为50的数字吗? 问题答案: 在这种情况下,你可以从内置的IntegerField

  • 问题内容: 当我仅知道字段名称和模型名称(均为纯字符串)时,我试图获取模型内部字段上的类信息。这怎么可能? 我可以动态加载模型: 现在我有一个字段-‘myfield’-如何获取该字段的类? 如果字段是关系字段-如何获取相关字段? 谢谢一群! 问题答案: 您可以使用模型的属性来获取字段对象,并且可以从字段中获取关系以及更多其他信息,例如,考虑一个雇员表,该雇员表具有一个部门表的外键 来自django

  • < code >在此输入代码我在android应用程序中有一个注册表,用户可以在其中输入他们的详细信息。我尝试将数据存储到firebase中,数据正在存储,但问题是电话号码、年龄和姓名都将被存储。如何解决这个问题?请帮帮忙! 助手类 公共类UserHelperClass { } 数据存储到Firebase代码 从其他活动获取数据 将数据传递给另一个活动 公共类注册活动扩展了应用程序兼容性活动 {

  • 问题内容: 我的问题是,我想在数据库中存储一个具有多个电话号码的人。对于单个数字变量,每个变量将只存储一个数字。 现在,如果我想添加另一个电话号码,它将创建另一个新记录,该记录具有相同的详细信息,但具有不同的号码。 我想一起显示所有这些数字。有人可以帮忙吗? 问题答案: 您可以使用第二个表来存储数字,并使用外键链接回去: 第二张表将保存数字… 然后,您可以获取像这样的数字… 这是一个简单的例子。如