【问题标题】:How to add a dictionary(or some other data type) to an account in Django如何将字典(或其他数据类型)添加到 Django 中的帐户
【发布时间】:2018-08-05 00:18:50
【问题描述】:

我知道有一个可以实现的 Django 商店,但它似乎不符合我的需要。我有一个返回 2d 列表的 python 代码,然后我使用 jinja 以 HTML 格式显示。 2d 列表中的每个列表都包含有关产品的信息,我想知道是否可以添加一个添加到购物篮功能,该功能将该列表存储给用户,我以字典的形式思考,以便用户稍后可以看到他们的购物篮.

【问题讨论】:

标签: python django


【解决方案1】:

您有多种选择,具体取决于您想要的数据库布局。您可以 extend the django user model 使用包含 dict 的 nwe 字段。 一个更优雅(可能更好)的解决方案是创建一个新的数据库表,其中包含您的购物篮和用户 ID 的条目。为此,有几种设计,其中两种是: - 两个表,一个包含所有项目(列 item 和 id),一个将项目 id 连接到用户 id - 一张表,包含三个条目,id、item 和 user id 您可以通过将列添加为外键来获取此处的 ID

根据自己的喜好选择一个选项,并取决于您对数据库的教育程度。并且可能在实施之前先在纸上画出你的布局,这样你就可以看看它是否有意义。

【讨论】:

  • 嗨,我正在做第一个选项,因为我的经验有限,并且我在 models.py 中制作了一个名为 cart 的字典。我有一个按钮,我想在单击时将其添加到字典中。我遇到的问题是我还没有找到用 jinja 添加到它的方法。所以我的问题是添加到字典的最佳方法是什么?
  • 创建一个简单的 html 按钮并将其与此处描述的视图函数链接:stackoverflow.com/questions/15341285/… 在您的视图函数中,只需接收您要添加的项目的 ID 和用户 ID,通过过滤db 表,添加并保存。瞧。
  • 我把它放到一个表单中,动作链接到一个url,然后调用一个函数,但是我找不到从html文件中获取列表到函数中的方法
  • 为什么要从html返回?您将列表保存在视图函数中,然后将其显示在 html 上。添加项目时,将其添加到列表中并重新加载 html 文件的显示。
  • 谢谢。我最终存储了用户在会话中搜索的所有结果,然后他们单击“添加到购物篮”按钮,它将从会话中获取的产品添加到数据库中。这可能不是最有效的方法,但对我有用。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-27
  • 2022-01-20
相关资源
最近更新 更多