Database 从Django中具有多对多关系的两个表中检索数据?
我想从名为file的表中检索用户id为1的数据。用户和文件表以及多对多关系。我想显示与该用户相关的文件Database 从Django中具有多对多关系的两个表中检索数据?,database,django,Database,Django,我想从名为file的表中检索用户id为1的数据。用户和文件表以及多对多关系。我想显示与该用户相关的文件 class GalaxyUser(models.Model): id = models.IntegerField(primary_key=True) create_time = models.DateTimeField(null=True, blank=True) update_time = models.DateTimeField(null=True, blank=T
class GalaxyUser(models.Model):
id = models.IntegerField(primary_key=True)
create_time = models.DateTimeField(null=True, blank=True)
update_time = models.DateTimeField(null=True, blank=True)
email = models.CharField(max_length=765)
password = models.CharField(max_length=120)
external = models.IntegerField(null=True, blank=True)
deleted = models.IntegerField(null=True, blank=True)
purged = models.IntegerField(null=True, blank=True)
username = models.CharField(max_length=765, blank=True)
form_values_id = models.IntegerField(null=True, blank=True)
disk_usage = models.DecimalField(null=True, max_digits=16, decimal_places=0, blank=True)
class Meta:
db_table = u'galaxy_user'
class File(models.Model):
users = models.ManyToManyField(GalaxyUser)
file_name = models.CharField(max_length=100)
type = models.CharField(max_length=10)
source = models.CharField(max_length=100)
start_date = models.TextField()
end_date = models.TextField()
duration = models.TextField()
size = models.TextField()
flag = models.TextField()
如果用户是以用户身份登录的,我会得到用户的id,比如说它是1。现在,我只想检索与用户1相关的文件名。我该怎么做?您可以使用
File.objects.filter(users\uu id\uu exact=1)
。请参阅。您可以使用File.objects.filter(users\uu id\uu exact=1)
。参考
查看有关许多查找的更多信息
请参阅有关许多查找的详细信息如果您解释了代码,将有助于用户(和其他读者)。如果您解释了代码,将有助于用户(和其他读者)。如果您想要与用户相关的单个文件名,则使用了错误的数据结构:您想要一个OneOne关系,不是很多。如果您想要一个与用户相关的单一文件名,那么您使用了错误的数据结构:您想要的是一个一对一的关系,而不是很多。
File.objects.filter(users=GalaxyUser.objects.get(id=1))
user = GalaxyUser.objects.get(id=1)
files = user.file_set.all()