我有以下两种模式:
class Table1(models.Model):
locker_id = models.IntegerField(primary_key=True)
locker_name = models.CharField(db_column='Locker_name', max_length=45, blank=True, null=True) # Field name made lowercase.
city = models.CharField(max_length=45, blank=True, null=True)
state = models.CharField(max_length=45, blank=True, null=True)
pincode = models.CharField(max_length=45, blank=True, null=True)
locker_capacity = models.CharField(max_length=45, blank=True, null=True)
和
class Table2(models.Model):
key = models.AutoField(primary_key=True)
locker = models.ForeignKey(Table1)
empty_slots = models.CharField(max_length=45, blank=True, null=True)
现在使用django和python我想进行以下查询并返回一个新的元组结构。 SQL类比如下:
SELECT *
FROM Table1
INNER Table2
ON Table1.locker_id=Table2.locker_id;
任何人都可以帮我解决语法或任何参考问题。三江源。
答案 0 :(得分:0)
您可以使用QuerySet.select_related
:
Table2.objects.all().select_related('locker')
要获取元组结构,请使用QuerySet.values_list
:
Table2.objects.all().select_related('locker') \
.values_list('locker__locker_id', 'locker__locker_name',
'locker__city', 'locker__state', 'locker__pincode',
'locker__locker_capacity', 'key', 'empty_slots')
# If you don't specify fields, you will get fields of Table2 only.