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
user = GalaxyUser.objects.get(id=1)
files = user.file_set.all()

ここでManyToManyルックアップの詳細を参照してください

于 2013-01-14T06:56:26.600 に答える
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 に答える