• Как исправить “NOT NULL constraint failed”?

    deepblack
    @deepblack
    Для реализации лайков (Голосов) отлично подходит GenericForeignKey - позволяет ссылаться на различные объекты и вообще данное решение более универсальное.
    class Like(models.Model):
        user = models.ForeignKey(settings.AUTH_USER_MODEL,
                                 related_name='likes',
                                 on_delete=models.CASCADE)
        content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
        object_id = models.PositiveIntegerField()
        content_object = GenericForeignKey('content_type', 'object_id')


    Я рекомендую посмотреть как устроена система лайков тут (* может быть заблокирован на территории России)

    UPD:
    Если ссылка выше не работает (и нет VPN), вариант заглянуть на GitHub
    Тут исходники приложения из ссылки выше.
    Возможно без обьяснения будет не очень понятно что здесь реализовано и почему именно так,
    но проект хорош как образец.
    Ответ написан
    4 комментария