【问题标题】:Storing User Information Django存储用户信息 Django
【发布时间】:2012-05-26 13:32:39
【问题描述】:
对于网站上的用户,使用数据库在 Django 中存储信息的最佳方式是什么。我正在开发的网站包含以下部分:
- 一种聊天室,用户可以在其中发布 cmets。
- 一组对其他用户公开的文档。
- 每个文档的评论
问题是,文档应该存储在哪里? (我不知道每个人会有多少)。对于每个文档,评论应该存储在哪里? (不知道会有多少评论)。
我对 Django 非常陌生,并且刚刚开始阅读我买的书,但需要开始计划以便在 8 月之前完成它(对于这么新的人来说甚至可能吗?)。
【问题讨论】:
标签:
python
sql
django
web
django-database
【解决方案1】:
直截了当OOP,您应该为每个工件创建一个模型(对象) - 例如:
class ChatComment(models.Model):
owner = models.ForeignKey(User)
when = models.DateTimeField(auto_now_add=True)
message = models.CharField(...)
...
chatroom = models.ForeignKey(ChatRoom)
class PublicDocument(models.Model):
owner = models.ForeignKey(User)
created = models.DateTimeField(auto_now_add=True)
title = models.CharField(...)
payload = models.FileField(...)
class DocumentReview(models.Model):
author = models.ForeignKey(User)
document = models.ForeignKey(PublicDocument)
when = models.DateTimeField(auto_now_add=True)
text = models.CharField(...)
等等……
【解决方案2】:
Paulo 的回答很到位。但我还要补充一点,您应该仔细阅读FileField 的文档。
文档通常存储在文件系统的目录中。数据库(根据 Paulo 的回答)将包含对该位置的引用。 Django 几乎可以使用 FileField 自动为您执行此操作,因此只需阅读并确保您理解它。