как использовать django.core.management.sql.sql_create?

#sql #django

#sql #джанго #django

Вопрос:

Я хочу использовать эту функцию: django.core.management.sql.sql_create на мой взгляд, для получения инструкций «CREATE»

функция получает 3 аргумента:

приложение, стиль, подключение

что такое «приложение»?? это конкретный объект или просто название приложения?!

Я знаю, что стиль как-то связан с цветами… Я считаю, что django.core.management.color.colorstyle () должен работать..

что насчет подключения, как мне его получить?

Спасибо

=========================== отредактировано отсюда вниз

хорошо, через некоторое время я разобрался с вещами, вот что у меня получилось:

def sqldumper(модель):
 """получает модель БД и возвращает инструкции SQL для ее построения в другой базе данных, поддерживающей SQL"""
 #Вот как django вставляет новую запись
 #u'ВСТАВЬТЕ В ЗНАЧЕНИЯ "polls_poll" ("вопрос", "pub_date") (GE!!, 2011-05-03 15:45:23.254000)'

 результат = "BEGIN;  n"
 #добавить инструкции для СОЗДАНИЯ ТАБЛИЦЫ 
 результат  = 'n'.join(sql_create(модели.get_app('опросы'), color_style(), connections.all()[0])) " n"
 результат  = 'n'.join(sql_custom(модели.get_app('опросы'), color_style(), connections.all()[0])) " n"
 результат  = 'n'.join(sql_indexes(модели.get_app('опросы'), color_style(), connections.all()[0])) " n"
 результат  = 'n'

 #добавить ВСТАВКУ В staetements 
 единицы измерения = модель.объекты.все().значения() 
 для unit в единицах:
 оператор = "ВСТАВИТЬ В yourapp.model" str (кортеж(unit.keys()))  "ЗНАЧЕНИЯ"   str (кортеж (unit.values())) "n"
 результат  =оператор

 результат  ="nCOMMIT;  n" 
 возвращает результат.encode('utf-8')

это все еще немного странно, потому что вы получаете ТАБЛИЦУ СОЗДАНИЯ для всего приложения, но ВСТАВЛЯЕТЕ В только для модели, которую вы запрашиваете …. но это исправимо отсюда

Ответ №1:

Это models.py модуль, найденный в одном из ваших приложений:

 INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'myproject.myapp',
    )
  

Когда я распечатал это, я получил < module 'myproject.myapp.models' from '...' > . Я использовал многоточия вместо ввода всего models.py путь к файлу.

Комментарии:

1. хорошо, я вроде как разобрался — я отредактировал свой вопрос (потому что как новичку вам не разрешено публиковать ответы на свой собственный вопрос … 🙂 спасибо, Брайс!