在Django ManyToMany关系中声明添加对象的存在 [英] Asserting for presence of added objects in Django ManyToMany relation

查看:142
本文介绍了在Django ManyToMany关系中声明添加对象的存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下模型:

  class Station(models.Model):
name = models.CharField (max_length = 50)
address = models.TextField(default ='')
owner = models.ForeignKey(User,default ='')
members = models.ManyToManyField(User,related_name ='members')

现在以下代码之后:

  user1 = User.objects.create_user(username =username1,
password =password1)
user1.save()
user2 = User.objects.create_user(username =username2,
password =password2)
user2save()
user3 = User.objects.create_user(username =username3 ,
password =password3)
user3.save()
station = Station(name =somename,
address =someaddress,
owner = user1,

station.save()

station.members.add(user2,user3)

我想声称添加的用户确实在那里作为站的成员



有人请告诉我如何



assert station.members == [user2,user3] 不飞。 station.members实际上是<站:站对象> .members

解决方案>

station.members 是一个经理,即它是相关用户查询的访问者。您需要实际执行一个查询:在这种情况下, station.members.all()


I have the following model;

class Station(models.Model):
    name = models.CharField(max_length=50)
    address = models.TextField(default='')
    owner = models.ForeignKey(User,default='')
    members = models.ManyToManyField(User, related_name='members')        

Now after the following code;

user1 = User.objects.create_user(username="username1",
                                     password="password1")
user1.save()
user2 = User.objects.create_user(username="username2",
                                     password="password2")
user2.save()
user3 = User.objects.create_user(username="username3",
                                     password="password3")
user3.save()
station = Station(name="somename",                            
                  address="someaddress",
                  owner=user1,
)
station.save()

station.members.add(user2,user3)

I want to assert that the added users are indeed there as the "members" of "Station"

Someone please tell me how

assert station.members == [user2,user3] doesn't fly. station.members actually is <Station: Station object>.members instead.

解决方案

station.members is a Manager, i.e. it is the accessor for queries on the related users. You need to actually perform a query: in this case, station.members.all().

这篇关于在Django ManyToMany关系中声明添加对象的存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆