存储用户信息Django

时间:2012-05-19 02:01:39

标签: python sql django web django-database

对于网站上的用户,使用数据库在Django中存储信息的最佳方式是什么。我正在处理的网站有以下几个部分:

  1. 一种用户可以发表评论的聊天室。
  2. 向其他用户公开的一组文档。
  3. 每个文件的评论
  4. 问题是,文件应存放在何处? (我不知道每个人会有多少人)。对于每个文档,评论应存储在何处? (我不知道会有多少评论)。

    我对Django很新,并且刚开始我买的这本书,但是需要开始计划才能在八月份完成它(这对于一个如此新的人来说甚至可能吗?)。

2 个答案:

答案 0 :(得分:5)

直接前进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(...)

等等......

答案 1 :(得分:1)

Paulo的回答很明显。但我还要补充一点,你应该仔细阅读FileField的文档。

文档通常存储在文件系统的目录中。数据库(根据Paulo的回答)将包含对该位置的引用。 Django可以使用FileField几乎自动为您完成此操作,所以请仔细阅读并确保您理解它。