2015-03-02 4 views
1

Как создать объект набора заданий при работе с пользовательским запросом.Объект Queryset

Я хочу присоединиться к 5 таблицам. но нет внешнего ключа, определенного во всей таблице (целое поле вместо внешнего ключа)

Пример: PersonID - целое поле. Этот идентификатор пользователя. Итак, теперь я хочу присоединиться к этой таблице как никакой внешний ключ. Итак, как присоединиться к этим двум.

И если мы использовали пользовательский запрос, как

cursor.connection() 
cursor.execute() 

Тогда его не получить запрос объект набора. Мне нужен объект набора запросов. Так что вы можете помочь мне решить эту проблему.

Спасибо.

ответ

1

Используйте raw() запрос:

Person.objects.raw("SELECT * FROM app_person <YOUR JOINS HERE>") 

UPDATE: Если вы хотите docts со значениями вместо экземпляров модели, то вы могли бы использовать direct SQL вместо QuerySet манипуляций. Рецепт описан в документах:

def dictfetchall(cursor): 
    "Returns all rows from a cursor as a dict" 
    desc = cursor.description 
    return [dict(zip([col[0] for col in desc], row)) 
      for row in cursor.fetchall()] 

cursor = connection.cursor() 
cursor.execute("SELECT * FROM app_person <YOUR JOINS HERE>"); 
values = dictfetchall(cursor) 
+0

его дать мне запрос строки. Я хочу значения, которые находятся в объекте Queryset. Спасибо – Nikunj

+0

См. Обновленный ответ. – catavaran

Смежные вопросы