我有一个带有自定义用户模型的$lists = array(
array(
'id' => 1,
'parent' => 0,
'name' => 'Menu 1',
),
array(
'id' => 2,
'parent' => 1,
'name' => 'Menu 2',
),
array(
'id' => 3,
'parent' => 2,
'name' => 'Menu 3',
),
array(
'id' => 4,
'parent' => 1,
'name' => 'Menu 4',
),
array(
'id' => 4,
'parent' => 0,
'name' => 'Menu 5',
)
);
?>
<ul>
<li><a>My List</a>
<ul>
<?php
foreach($lists as $key=>$list) {
?>
<li><a><?= $list['name']; ?></a></li>
<?php
}
?>
</ul>
</li>
项目。
我有这个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
查询所有软件版本。
有人有什么想法吗?预先谢谢你。
答案 0 :(得分:0)
尝试使用user_instance.subscriptions_set.all()
代替.app_subscriptions_set.all()
。
默认的accesor是型号名称,全部为小写字母,并附加_set
。参见docs或this question。
您的模型Version
就是这样:
software_instance.version_set.all()