0

我想从名为 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=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()

如果用户以用户身份登录,我会得到 user_id,假设它是 1。现在,我只想检索与用户 1 相关的文件名。我怎样才能做到这一点?

4

3 回答 3

1

您可以使用File.objects.filter(users__id__exact=1). 参考这里

于 2013-01-14T06:50:52.100 回答
1
File.objects.filter(users=GalaxyUser.objects.get(id=1))
于 2013-01-14T06:51:10.030 回答
1
user = GalaxyUser.objects.get(id=1)
files = user.file_set.all()

在此处查看有关多对多查找的更多信息

于 2013-01-14T06:56:26.600 回答