Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django ManyToMany字段返回None,但它有相关记录_Python_Django_Django Models - Fatal编程技术网

Python Django ManyToMany字段返回None,但它有相关记录

Python Django ManyToMany字段返回None,但它有相关记录,python,django,django-models,Python,Django,Django Models,我有一个带有多个字段的模型,但是当我进行查询时,这个字段返回None,即使它在数据库中有值(我已经用Django Admin util检查过) 这是我的模型: class Profile(models.Model): name = models.CharField(max_length=50, unique=True, verbose_name=_('Name')) cities = models.ManyToManyField(City, related_name='profi

我有一个带有多个字段的模型,但是当我进行查询时,这个字段返回
None
,即使它在数据库中有值(我已经用Django Admin util检查过)

这是我的模型:

class Profile(models.Model):
    name = models.CharField(max_length=50, unique=True, verbose_name=_('Name'))
    cities = models.ManyToManyField(City, related_name='profiles', verbose_name=_('City'))

    class Meta:
        verbose_name = _('Profile')
        verbose_name_plural = _('Profiles')

    def __str__(self):
        return "[{}]{}".format(self.name, self.cities)
这是我的疑问:

profile_city = models.Profile.objects.get(id=profile_id)

print(profile_city.id, ' ', profile_city.name, ' ', profile_city.cities)
这是控制台中的结果:

1   Quintana Roo   GeneralApp.City.None
当我尝试在` Profile.cities `上迭代时,会出现以下错误: 'TypeError:'ManyRelatedManager'对象不可编辑。'

我是Django的新手,我认为很多字段都返回了一个数组,但显然不是


感谢您的帮助。

profile\u city=models.profile.objects.get(id=profile\u id)

profile\u city.cities
返回一个无法迭代的管理器类

请尝试使用此选项,而不是profile\u city.cities

profile_city.cities.all()

不,它返回
GeneralApp.City.None
,和
Profile.cities
,是不可编辑的,它应该是
some\u Profile.cities
(因此你只能用
Profile
对象访问相关的一次。非常感谢,它使用了这个'Profile\u City.cities.all()'并且我可以得到所有的值。