Внешний ключ для пользовательской модели не работает должным образом - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть django проект с пользовательской моделью пользователя.

У меня есть Subscriptions модель, в которой в качестве внешнего ключа используется пользовательская модель пользователя.

class Subscriptions(models.Model):
    user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
    app_subscriptions = models.CharField(max_length=100)

    def __str__(self):
        return self.app_subscriptions

Ноесли я пытаюсь получить всех пользователей app_subscriptions с ..app_subscriptions_set.all(), он всегда возвращается со следующей ошибкой:

AttributeError: 'CustomUser' object has no attribute 'app_subscriptions_set'

У меня используется модель того же типа, что и здесь:

from django.db import models

class Software(models.Model):
    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name

class Version(models.Model):
    version = models.CharField(max_length=50)
    software = models.ForeignKey(Software, on_delete=models.CASCADE)

    def __str__(self):
        return self.version

И на этой модели у меня нет проблем с запросом для всех версий программного обеспечения с ...version_set.last().

У кого-нибудь есть какие-нибудь идеи?Заранее спасибо.

1 Ответ

0 голосов
/ 27 февраля 2019

Попробуйте использовать user_instance.subscriptions_set.all() вместо .app_subscriptions_set.all().

По умолчанию указателем доступа является название модели, все строчные буквы, и добавляется _set.См. документы об этом или этот вопрос .

Ваша модель Version такова:

software_instance.version_set.all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...