2017-01-21 54 views
1

我有兩個以下型號:Django-views.py:如何進行內部連接

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

您可以使用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. 
+0

如何打印模板的任何線索。我們如何在results.html – Anonymous

+0

@Anonymous中打印這樣的格式,我不明白你的意思。 – falsetru

+0

我們如何顯示和迭代在模板中獲得的最終對象。我想以表格形式顯示對象列表。現在,當我使用以下代碼:沒有顯示任何內容:請注意,qlist是使用上述答案找到的結果列表。 {%,爲的QList%OB} ​​{{ob.empty_slots_prime}} ​​{{ob.city}} – Anonymous