#python #django #django-models
#python #django #django-модели
Вопрос:
У меня есть список городов (простой файл cvs), и я хочу заполнить таблицу citeis при создании модели города. Описание класса:
class City(models.Model):
city = modeld.CharField('city_name', max_length=50)
class Meta:
berbuse_name =....
...........
def __unicode__(self):
return self.city
Теперь я ищу, как сделать это только один раз, при создании модели (таблицы DB).
Я пытаюсь сделать это здесь, потому что для меня это звучит очень логично (например, создание sql-скрипта в MS-sql и других)
РЕДАКТИРОВАТЬ: Хорошо, я думаю, я спрашиваю не о том …. может быть, это: Как мне создать функцию python, которая возьмет файл cvs и преобразует его в json (опять же, в самой модели, во время ее сборки) и должен ли я вообще это делать???
Может ли кто-нибудь, пожалуйста, помочь мне с этим?
Комментарии:
1. преобразование csv в JSON тривиально. Посмотрите на
csv
модуль иjson
module.
Ответ №1:
Обычно мы делаем что-то подобное.
import csv
from my_django_app.forms import CityForm
with open( "my file", "rb" ) as source:
rdr = csv.DictReader( source )
for row in rdr:
form= CityForm( **row )
if form.is_valid():
form.save()
else:
print form.errors
Это проверяет и загружает данные.
После загрузки данных вы можете использовать django-admin dumpdata
для сохранения JSON-элемента из загруженной модели.
Комментарии:
1. Спасибо, это то, что мне было нужно, хотя, насколько я понимаю, этого нет в самой модели …. но 10x 🙂
Ответ №2:
Комментарии:
1. Извините, но я прочитал это и не вижу, как это мне поможет…. Может быть, я ошибаюсь, но, как я уже сказал, у меня есть файл cvs, и я хочу, чтобы он был автоматически загружен (леди-программист), чтобы не вводить значения вручную (это я могу сделать в admin… Может быть, я чего-то не понимаю, но я больше думал о чтении файла с помощью python и создании автоматической вставки…. Я отредактирую свой первоначальный вопрос ….10x