【问题标题】:Foreign key to user model not working as expected用户模型的外键未按预期工作
【发布时间】:2019-02-27 19:56:27
【问题描述】:

我有一个带有自定义用户模型的 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() 查询所有软件版本都没有问题。

有人有什么想法吗?提前谢谢你。

【问题讨论】:

  • subscriptions_set不是 app_subscriptions_set

标签: python django foreign-keys


【解决方案1】:

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

默认访问者是型号名称,全部小写,并附加_set。请参阅docsthis question

你的模型Version就是这样的:

software_instance.version_set.all()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-26
    • 2015-08-20
    • 1970-01-01
    • 2014-01-28
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    相关资源
    最近更新 更多