Django комментарий(и) к пользователям в базе данных
В настоящее время я создаю сайт на Django, где персонал имеет контроль над пользователями, и в рамках этих полномочий я хотел бы добавить возможность добавления сотрудниками приватных комментариев к пользователям, чтобы их мог прочитать тот, кто имеет на это право.
Итак, я начал создавать пользователя models.py
вот что я сделал:
class user(models.Model):
name = models.CharField(max_length=30)
comments = models.TextField()
date = models.DateField(default=datetime.now())
def __str__(self):
return self.name
Мой вопрос: как я могу добавить поле комментария каждый раз, когда сотрудник хочет? Например, с приведенным выше кодом, я могу иметь только один комментарий для каждого пользователя.
Все очень ценно. Спасибо!
Есть несколько способов сделать это.
1. ForeignKey
Сделайте отдельную модель для комментариев и сделайте внешний ключ к модели User
. Таким образом, несколько комментариев могут быть связаны с одним и тем же пользователем.
2. ArrayField
Если вы используете базу данных Postgres, вы можете использовать ArrayField
.
Минусы: Редактирование в панели администратора не очень удобно для пользователя.
3. JSONField
Вы также можете хранить несколько комментариев в массиве JSON.
Минусы: Редактирование в панели администратора не является удобным для пользователя.
P.S.: Если вы решите использовать ArrayField
или JSONField
, посмотрите приложение, которое я сделал под названием django-jsonform
. Оно сделает редактирование JSON и ArrayField
приятным и удобным для пользователя.