让用户能够创建自己的数据存储的最佳方式?

时间:2016-10-09 01:23:50

标签: django django-models

我希望我的网站用户能够将信息上传到数据库中。我知道Django并不真正允许我让用户拥有自己动态创建的表。所以我想知道处理这个问题的最有效方法是什么。

例如,如果所有用户都希望保存包含姓名,电子邮件,电子邮件等的邮件列表,我是否会将所有这些内容放入一个包含用户ID列的巨型表中,或者是否有更智能的方法来执行此操作?

基本功能允许用户以受限格式上传CSV中的数据。即电子邮件,名称将被放入如下表格中:

用户|电子邮件|名称

但是,我想进一步改进这一点,以便用户可以指定自己的字段。即添加电话号码,地址或他们想要的任何其他信息。也许还能够在类似于以下的模型下添加自己的字段标题。

用户| field1 | field2 | field3 |字段4

1 个答案:

答案 0 :(得分:1)

您不需要为每个用户创建新表。您可以完全按照您的说法操作,拥有一个邮件列表表,并使用关联的用户ID存储每条记录。然后,当用户想要查看其列表时,您可以按用户ID过滤该表。同样,如果用户想要修改邮件列表,您可以确保该用户与他们尝试修改的记录具有相同的ID。

Django已经拥有一个非常强大的user authentication and permissions系统。您应该使用它来确保只有登录的用户才能访问他们的记录。

我建议您花些时间仔细准备Django documentation并按照第一步教程进行操作。他们会让您更好地了解如何设置模型和实施身份验证。