对于网站上的用户,使用数据库在 Django 中存储信息的最佳方式是什么。我正在处理的网站有以下部分:
- 一种聊天室,用户可以在其中发表评论。
- 一组对其他用户公开的文档。
- 对每份文件的审查
问题是,文件应该存储在哪里?(我不知道每个人会有多少)。对于每个文档,评论应该存储在哪里?(我不知道会有多少评论)。
我对 Django 很陌生,刚开始买我买的书,但需要开始计划才能在 8 月之前完成(对于这么新的人来说,这甚至可能吗?)。
对于网站上的用户,使用数据库在 Django 中存储信息的最佳方式是什么。我正在处理的网站有以下部分:
问题是,文件应该存储在哪里?(我不知道每个人会有多少)。对于每个文档,评论应该存储在哪里?(我不知道会有多少评论)。
我对 Django 很陌生,刚开始买我买的书,但需要开始计划才能在 8 月之前完成(对于这么新的人来说,这甚至可能吗?)。
直截了当的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(...)
等等...
保罗的回答很到位。但我还要补充一点,您应该仔细阅读FileField的文档。
文档通常存储在文件系统的目录中。数据库(根据保罗的回答)将包含对该位置的引用。Django 几乎可以使用 FileField 自动为您执行此操作,因此只需阅读并确保您理解它。