Хранение Информации О Пользователе Django
Для пользователей на веб-сайте, что является лучшим способом хранения информации в Django с базами данных. Сайт, над которым я работаю, имеет следующие разделы:
- своего рода чат-комната, где пользователи могут оставлять комментарии.
- набор документов, открытых для других пользователей.
- обзоры для каждого документа
Вопрос в том, где должны храниться документы? (Я не знаю, сколько их будет у каждого человека). Для каждого документа, где должны храниться отзывы? (Я не знаю. знайте, сколько отзывов будет).
Я очень новичок в Django и только начал книгу, которую купил, но мне нужно начать планировать, чтобы закончить ее к августу (возможно ли это для кого-то настолько нового?).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, поэтому просто прочитайте его и убедитесь, что вы его понимаете.