有没有一种方法可以在Django模型中使用列表类型对象?

时间:2020-08-21 01:21:34

标签: python django database

我正在开始我的第一个Django独立项目,并遇到了如何在数据库中存储内容的问题。我正在做的是尝试创建一个基于Web的杂货店。我想添加一个订单模型,我可以在其中存储用户,然后存储他们想要的列表或最佳字典。我知道字典可能有些冗长,但是有什么方法可以创建模型列表?我看过类似的问题,并且看到JSON选项,但我不确定如何使它起作用,因为我无法在管理员中进行操作。预先感谢。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是Foreign Key模型字段。

在您的方案中,您可能想跟踪杂货库存。因此,您可能会有这样的模型:

class GroceryItem(models.Model):
    name = models.CharField(max_length=500) # Green Apples
    inventory = models.IntegerField() # 300

这将保留您可以列出要出售或可用的所有物品的记录。

现在,您正在寻找的是一个用户在购物车中想要或想要拥有的许多不同物品。因此,您可以创建这样的模型:

class Cart(models.Model):
    user = models.OneToOneField(User) #This is how we let our database know that a user can only be holding 1 cart.

现在有很多方法可以实施这种策略,有些方法有其优点和缺点,但是一种方法是创建一个将两者联系起来的新模型。

class GroceryCartItem(models.Model):
    grocery_item = models.ForeignKey(GroceryItem) # This means that this object can only be part of 1 grocery item, but grocery item can be part of many
    cart = models.ForeignKey(Cart)

在上面的示例中,我们可以创建一个新的对象实例,以连接用户的购物车和杂货店的购物车

因此,如果我想在购物车上运行查询,它可能类似于:

GroceryCartItem.objects.filter(cart=cart_belonging_to_user)

它将与所有物品一起返回。

数据库关系可能很复杂,但是可以说是使它们如此强大的原因。要了解更多信息,我建议您在这里https://www.techrepublic.com/article/relational-databases-defining-relationships-between-database-tables/或django文档中阅读有关的关系。

祝您编程愉快!