Хранение Информации О Пользователе Django


Для пользователей на веб-сайте, что является лучшим способом хранения информации в Django с базами данных. Сайт, над которым я работаю, имеет следующие разделы:

  1. своего рода чат-комната, где пользователи могут оставлять комментарии.
  2. набор документов, открытых для других пользователей.
  3. обзоры для каждого документа

Вопрос в том, где должны храниться документы? (Я не знаю, сколько их будет у каждого человека). Для каждого документа, где должны храниться отзывы? (Я не знаю. знайте, сколько отзывов будет).

Я очень новичок в Django и только начал книгу, которую купил, но мне нужно начать планировать, чтобы закончить ее к августу (возможно ли это для кого-то настолько нового?).
2 2

2 ответа:

Прямо вперед ООП , Вы должны просто создать модель (объект) для каждого артефакта - например:

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, поэтому просто прочитайте его и убедитесь, что вы его понимаете.