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 приятным и удобным для пользователя.

Вернуться на верх