Я хочу использовать эту функцию: django.core.management.sql.sql_create, на мой взгляд, чтобы получить операторы "CREATE"
функция получает 3 аргумента:
app,стиль, связь
что такое "приложение" ??Это конкретный объект или только имя приложения?!
Я знаю, стиль связан с цветами ... Я считаю, что django.core.management.color.colorstyle () должен работать ..
как насчет соединения, как мне получить это?
спасибо
========================== отредактировано отсюда вниз
хорошо, через некоторое время я понял, с чем я закончил:
def sqldumper(model):
"""gets a db model, and returns the SQL statements to build it on another SQL-able db"""
#This is how django inserts a new record
#u'INSERT INTO "polls_poll" ("question", "pub_date") VALUES (GE!!, 2011-05-03 15:45:23.254000)'
result = "BEGIN;\n"
#add CREATE TABLE statements
result+= '\n'.join(sql_create(models.get_app('polls'), color_style(), connections.all()[0]))+"\n"
result+= '\n'.join(sql_custom(models.get_app('polls'), color_style(), connections.all()[0]))+"\n"
result+= '\n'.join(sql_indexes(models.get_app('polls'), color_style(), connections.all()[0]))+"\n"
result+= '\n'
#add INSERT INTO staetements
units = model.objects.all().values()
for unit in units:
statement = "INSERT INTO yourapp.model "+str(tuple(unit.keys()))+" VALUES " + str(tuple(unit.values()))+"\n"
result+=statement
result+="\nCOMMIT;\n"
return result.encode('utf-8')
это все еще немного странно, потому что выполучите CREATE TABLE для всего приложения, но INSERT INTO только для запрашиваемой вами модели .... но это можно исправить здесь