如何将字典(或其他数据类型)添加到 Django 中的帐户
Posted
技术标签:
【中文标题】如何将字典(或其他数据类型)添加到 Django 中的帐户【英文标题】:How to add a dictionary(or some other data type) to an account in Django 【发布时间】:2018-08-05 00:18:50 【问题描述】:我知道有一个可以实现的 Django 商店,但它似乎不符合我的需要。我有一个返回 2d 列表的 python 代码,然后我使用 jinja 以 html 格式显示。 2d 列表中的每个列表都包含有关产品的信息,我想知道是否可以添加一个添加到购物篮功能,该功能将该列表存储给用户,我以字典的形式思考,以便用户稍后可以看到他们的购物篮.
【问题讨论】:
是的。有几种方法是可能的。对于购物篮,您通常将其存储在会话对象中。即使访客没有登录也可以使用。docs.djangoproject.com/en/2.0/topics/http/sessions/… 【参考方案1】:您有多种选择,具体取决于您想要的数据库布局。您可以 extend the django user model 使用包含 dict 的 nwe 字段。 一个更优雅(可能更好)的解决方案是创建一个新的数据库表,其中包含您的购物篮和用户 ID 的条目。为此,有几种设计,其中两种是: - 两个表,一个包含所有项目(列 item 和 id),一个将项目 id 连接到用户 id - 一张表,包含三个条目,id、item 和 user id 您可以通过将列添加为外键来获取此处的 ID
根据自己的喜好选择一个选项,并取决于您对数据库的教育程度。并且可能在实施之前先在纸上画出你的布局,这样你就可以看看它是否有意义。
【讨论】:
嗨,我正在做第一个选项,因为我的经验有限,并且我在 models.py 中制作了一个名为 cart 的字典。我有一个按钮,我想在单击时将其添加到字典中。我遇到的问题是我还没有找到用 jinja 添加到它的方法。所以我的问题是添加到字典的最佳方法是什么? 创建一个简单的 html 按钮并将其与此处描述的视图函数链接:***.com/questions/15341285/… 在您的视图函数中,只需接收您要添加的项目的 ID 和用户 ID,通过过滤db 表,添加并保存。瞧。 我把它放到一个表单中,动作链接到一个url,然后调用一个函数,但是我找不到从html文件中获取列表到函数中的方法 为什么要从html返回?您将列表保存在视图函数中,然后将其显示在 html 上。添加项目时,将其添加到列表中并重新加载 html 文件的显示。 谢谢。我最终存储了用户在会话中搜索的所有结果,然后他们单击“添加到购物篮”按钮,它将从会话中获取的产品添加到数据库中。这可能不是最有效的方法,但对我有用。谢谢!以上是关于如何将字典(或其他数据类型)添加到 Django 中的帐户的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Cloudkit 将字典(或任何其他复杂结构)保存到 iCloud 中?
如何知道 django 中任何 GCBV 返回的上下文数据?
当 Django views.py 没有将字典值传递给 html 时如何解决?