0

我有两个模型

class ClassProfile(models.Model):
    classname = models.CharField(max_length=100, blank=True)

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    class = models.ManyToManyField('ClassProfile')

我试着让所有的家庭成员都这样

 class = Class.objects.get(pk=1)
 members = class.userprofile_set.all()

这将引发错误

'ClassProfile' object has no attribute 'userprofile_set'

我的代码有什么问题?

4

2 回答 2

0

除了命名变量不是一个好主意之外class,我认为您在这一行中有一个错字:

class = Class.objects.get(pk=1)

你可能的意思是:

class = ClassProfile.objects.get(pk=1)
于 2013-07-31T07:32:47.483 回答
0

是什么让您认为 django 在任何地方都使用 CamelCase?默认情况下,反向访问器是lowercaseclsname_set

所以class.userprofile_set.all()应该这样做。

于 2013-07-31T04:11:15.983 回答