gpt4 book ai didi

django - 基于 ForeignKey 对象从模型中获取对象

转载 作者:行者123 更新时间:2023-12-04 05:33:34 24 4
gpt4 key购买 nike

我在从模型中获取对象时遇到了一些问题。我有这样的事情:

 # Model
class Subscription(models.Model):
identifier = models.CharField(max_length=10)
user = models.ForeignKey(User)

class Subscriber(models.Model):
name = models.CharField(max_length=5)

现在我有订阅者对象实例 my_user,我想获得相关订阅。所以我正在尝试类似的事情:
 sub = Subscription.objects.get(user=my_user)

但在那之后我得到了异常(exception)。我也试过:
 sub = Subscription.objects.get(user.id=my_user.id)

结果还是一样(异常(exception))。

您是否有任何建议或文档链接,我如何从订阅集合中获取此对象?

最佳答案

至少根据您上面提供的模型,我不确定为什么应该存在关系。

订阅者与订阅没有任何关系,具体来说,模型的主要 ID 可能不应该相关 (user.id=my_user.id),除非您明确地这样设计。

此外,这:

sub = Subscription.objects.get(user=my_user)

只有在 django 知道某种关系时才会起作用。

在我看来,你应该做这样的事情:
 class Subscription(models.Model):
subscriber= models.ForeignKey('Subscriber')
identifier = models.CharField(max_length=10)


class Subscriber(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=5) #PS, if you ever save anything longer than 5 char's this will raise an exception.

这将允许您进行如下查询:
my_user = Subscriber.obejects.get(something=someotherthing)
sub = Subscription.objects.get(subscriber=my_user)

关于django - 基于 ForeignKey 对象从模型中获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12271605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com