我有以下代码:
数据/电话.py:
class TelephoneNumber(models.Model):
MOBILE = 0
HOME = 1
TELEFON_CHOICES = (
(MOBILE, _("Mobile")),
(HOME, _("Landline")),
)
object_id = models.PositiveIntegerField()
content_type = models.ForeignKey(ContentType)
of = generic.GenericForeignKey('content_type', 'object_id' )
label = models.SmallIntegerField(choices=TELEFON_CHOICES)
number = models.CharField(max_length=20, blank=True)
模型.py:
^{pr2}$不,我想提供这样一个功能来检索用户的每个电话号码:
def get_telnumbers(self):
tellist = []
#print(self.telephonenumbers.all())
for tel in self.telephonenumbers.all():
tellist.append(tel)
return tellist
问题是,线路print(self.telephonenumbers.all())
不打印任何电话号码,即使已经提供了很多电话号码。
返回的dict也是空的。在
如何访问保存在Staff
上下文中的GenericRelation对象?在
编辑:
以下代码:
for tel in TelephoneNumber.objects.all():
print(tel)
print(tel.of)
给我保存的每个电话号码,并通过tel.of
找到电话号码所属的正确员工用户。在
那么,为什么self.telephonenumbers.all()
不能正常工作(self.user
还返回应该为其保存电话号码的正确用户)?在
我仍然不确定
self.telephonenumbers.all()
为什么不工作。在但我现在使用的是(有点难看的)解决方法:
如果有人还有更好的主意,我愿意接受!在
确保在创建新的
TelephoneNumber
对象时,提供content_object
属性作为相应的Staff
对象相关问题 更多 >
编程相关推荐