2017-01-21 5 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

@ Анонимно, я не понимаю, что вы имеете в виду. – falsetru

+0

Как мы можем отображать и перебирать конечные объекты, полученные в шаблоне. Я хочу отобразить список объектов в табличной форме. Теперь, когда я использую следующий код: ничего не отображается: Обратите внимание, что qlist - это список, найденный с помощью приведенного выше ответа. {% для Ob в QList%} {{}} ob.empty_slots_prime {{}} ob.city – Anonymous