Лучший способ добавить поле комментария в Django Rest Framework - PullRequest
0 голосов
/ 13 ноября 2018

В настоящее время я создаю сайт, который я хотел бы, чтобы пользователи могли комментировать. Мне просто не хватает времени, чтобы, так сказать, смоделировать модели.На мой взгляд, комментарии не связаны с основной статьей, я думаю, что они просто добавляются и погружаются в пропасть.Какой лучший способ подключения моделей?Должен ли я просто не иметь отдельную модель для комментариев?Это скорее гипотетический вопрос, чем вопрос о кодировании.В настоящее время так оно и есть.

    class Comments(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    comment = models.CharField(null=True, blank=True, max_length=5000)
    date = models.TextField(blank=True, null=True)
    username = models.CharField(null=True, blank=True, max_length=20)

class Article(models.Model):
    title = models.CharField(max_length=250, primary_key=True)
    content = models.TextField(blank=True, null=True)
    usedfor = models.TextField(blank=True, null=True)
    url=models.CharField(max_length=200, null=True)
    username = models.CharField(max_length=50, null=True, blank=True)
    article_programming_language = models.ForeignKey(ProgrammingLanguage, on_delete=models.CASCADE, blank=True, null=True)
    score = models.IntegerField(max_length=5, null=True, blank=True)
    article_framework = models.ForeignKey(Framework, on_delete=models.CASCADE, related_name="article_framework", blank=True, null=True)
    date_added = models.IntegerField( max_length=10, blank=True, null=True)
    article_comments = models.ForeignKey(Comments, on_delete=models.CASCADE, blank=True, null=True)

    def __str__(self):
        return self.title

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Это мое предложение,

  1. Создать модель комментария,

  2. Добавить модель пользователя с помощью fk user = models.ForeignKey(User, on_delete=models.CASCADE,) # Вы можете добавитьпусто и пусто в соответствии с вашим требованием

  3. Добавить модель товара с ФК, article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='articlecomment')

  4. Добавить дату с auto_now_add = True

Здесь пользователи могут добавлять любое количество комментариев.

0 голосов
/ 13 ноября 2018

Похоже, что у вас есть все, что нужно в вашем классе. Вот некоторые мнения.

  1. Комментарии должны быть отдельной моделью.

  2. Каждый комментарий должен быть адресован определенному пользователю (или анонимному пользователю). У пользователя может быть много комментариев, но комментарий должен создавать только один пользователь. Добавление ForeignKey внутри комментариев как [Bruno Monteiro] посоветовал может помочь.

  3. Каждый комментарий должен быть адресован определенной статье. Это также может быть отношение «один ко многим» (статья может иметь много комментариев, но комментарий относится только к определенной статье).

«Лучший дизайн» слишком велик, чтобы отвечать. Дизайн, который отвечает вашим потребностям, является лучшим. Так что, когда вы хотите найти «лучший дизайн», просто спросите себя, какие функции он будет предоставлять, как должны работать комментарии, и т.д.

...