python - 用户模型的外键未按预期工作

标签 python django foreign-keys

我有一个带有自定义用户模型的 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_set.all() 检索所有用户 app_subscriptions ,它总是返回以下错误:

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() 查询所有软件版本。

大家有什么想法吗?预先感谢您。

最佳答案

尝试使用 user_instance.subscriptions_set.all() 而不是 .app_subscriptions_set.all()

默认访问器是模型名称,全部小写,并附加_set。请参阅docs关于它,或this question .

您的模型版本就像这样:

software_instance.version_set.all()

关于python - 用户模型的外键未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54913507/

相关文章:

python - 移动数据帧的列而不循环?

javascript - 如何打开包含用 javascript 编写的图形的弹出窗口?

python - 当我有 key 时从字典中读取值

php - 一对多和一对多关系 laravel

python - 根据日期增加 Pandas Dataframe 列

python - 将列附加到二维数组

python - 通过 SSH 运行和安装脚本缺少的模块

python - 为什么 Django 会收到长 url 锁 python 的请求?

mysql - 为什么我不能对此形成外键?

database-design - 与 "default"子实例的一对多关系