我在下面有一个简单的模块,并且在 Person 模块中有一个名为 following 的字段。
class Person(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
image = models.FileField(upload_to="images/",blank=True,null=True)
following = models.ManyToManyField('self', related_name='followers', symmetrical=False, blank=True, null=True)
def __unicode__(self):
return self.name
我创建了 3 个帐户,分别为 sarah、jim 和 ben。我设法让莎拉跟随吉姆和本,但是当我显示莎拉跟随谁时,它返回一个查询集而不是他们自己的对象。我怎样才能反向工作以将它们自己放入对象中,以便我可以将它们与我的 Person 模块相关联并显示 sarah 关注的人的姓名。
这是我不明白的部分
>>> from pet.models import *
>>> from django.contrib.auth.models import User
>>> sarah = User.objects.get(username='Sarah')
>>> jim = User.objects.get(username='Jim')
>>> ben = User.objects.get(username='Ben')
>>> Sarah = Person.objects.get(user=sarah)
>>> Jim = Person.objects.get(user=jim)
>>> Ben = Person.objects.get(user=ben)
>>> Sarah.following.add(Jim,Ben) //setup the many to many relationship
>>> Sarah.save()
>>> Sarah.following.all() // return a queryset of Person objects which john is following.
[<Person: Jim>, <Person: Ben>]
我想返回用户在我的模板中关注的所有用户对象。
@SI 埃里克
>>> Sarah.following.all().values_list('name',flat=True)
[u'Jim', u'Ben']
>>> p = Sarah.following.all().values_list('name',flat=True)
>>> person = Person.objects.filter(user=p)
>>> print person
class Board(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name