Sly32

Рейтинг
370
Регистрация
29.03.2012
Alen_Delon:
Sly32, напишите Платонам.

Длначала отправил сигнал - я все исправил из вебмастера, будем поглядеть на разультет

Столько человек зашли/посмотрели - неужели никто ничего не посоветует? Нашел ошибку вывода фавиконок, еще по мелочи, но все равно не понимаю, за что фильтр.

С сайтом все ок - ищите вирусы в своем компе

Joker-jar:
А тип инпута случайно не file? У них нельзя менять значение динамически.

Нет, но стояло name="file" и действительно воспринималось как file - особенности ORM движка. Поправил уже и все работает прекрасно.

indenger20, спасибо! работает.

---------- Добавлено 04.05.2016 в 23:40 ----------

И тогда, может уже подскажете, как полученное значение передать в форму.

Есть инпут с name="file"

вместо алерта выше делаю так:


var path = $(this).html();
$("input[name='file']").val(path);

Не работает.

Stek:
Но тем не менее у себя в импорте вы читаете с захордкоденого пути и не создаете ни каких связей. На пхп так же можно сделать это в три строки.

Связь создается здесь -


newpost = BlogPost(.... categories_id=5 ... )

Достаточно передать номер категории и Джанго сам создаст связь с нужной таблицей согласно модели

Stek:

По хорошему весь импорт должен делаться в транзакции, а там где у вас "exept: pass" - должен быть откат транзакции, вывод ошибки и окончания действия импорта.

Все верно, уже дописал обработчик ошибок

Stek:

Это уже не говоря о том, что категорию и автора нельзя передавать по id. Их надо извлечь из базы и при отсутствии - создать.

И тут соглашусь. Автора и категорию я могу вообще исключить, потому что они не совпадаю в новой таблице. Мне важно создать json - файл с нужными данными, и уже потом при импорте я просто указываю, в какую категорию писать. Автор в данном случае вообще один только

Спасибо за комментарии

i-work, А мне в таком варианте не нужно по разным таблицам раскидывать. Не нужно для импорта лезть в консоль, могу в админке теперь загрузить json и тут же его импортировать в базу без лишних телодвижений))) все связи сами создадутся

Впрочем на вкус и цвет... Я нашел такое решение, оно меня более чем устраивает.

webjey, Stek, Спасибо за советы, помогло вникнуть в суть.

Но все же решил пойти по пути использования Джанго для этого. Получается универсальный код.

Вот пример, просто чтоб сравнить как все выглядит по сравнению с мусклей или пхп)))


def get_context_data(self, **kwargs):
context = super(ImportView, self).get_context_data(**kwargs)
context['form'] = ImportForm
data = requests.get('http://rentalcar.loc/media/data.json').json()
url = "http://rentalcar.loc/media/test.txt"
for item in data:
newpost = BlogPost(language='ru', title= item['post_title'], slug=item['post_name'], created_at=item['post_date'], content=item['post_content'], announce=item['post_content'][:250], keywords='новости', status='publish', categories_id=8, author_id=1 )
try:
newpost.save()
except:
pass
return context

Stek, Во-первых - не по одной таблице, тут главная сложность. В Вордпрессе данные по категориям храняться в 2-х таблицах, сам пост - в третьей, а тут ещеподумал, что неплохо бы выбрать данные из postmeta - там ссылки на картинки и дополнительные данные. Я собрал их в одну таблицу например, примерно таким запросом:



SELECT `term_taxonomy_id`, `object_id`, `slug`,`post_title`,`post_date`, `post_content`, `post_name`, `meta_key`, `meta_value` FROM `wp_rus_term_relationships`
INNER JOIN `wp_rus_terms`
ON `wp_rus_term_relationships`.`term_taxonomy_id` = `wp_rus_terms`.`term_id`
INNER JOIN `wp_rus_posts`
ON `wp_rus_posts`.`ID`= `wp_rus_term_relationships`.`object_id`
INNER JOIN `wp_rus_postmeta`
ON `wp_rus_term_relationships`.`object_id` = `wp_rus_postmeta`.`post_id` AND `wp_rus_postmeta`.`meta_key` = 'thumb'
WHERE `wp_rus_term_relationships`.`term_taxonomy_id`= 3

Получилась одна таблица. Теперь ее надо раскидать в две, одна с с постами, во второй категории, связана через поле foreignkey в первой таблице.Не знаю пока как нужный запрос составить. Ну и если делать через апи джанги - тогда гарантированно все данные будут в правильном виде и с ними не будет проблем по редактированию в дальнейшем.

Но если сможете подсказать правильные запросы для postgres - буду благодарен

---------- Добавлено 01.05.2016 в 21:40 ----------

Stek:
Но при этом на вашу голову ляжет определение типов и их конвертация.

В том и дело что нет - джанга все сама сделает. С разбором хмл и чтением из файла я разобрался, там все изумительно организовано. но , я думаю, вы и сами знаете.

Stek:
Сделать скрипт, подключится к одной базе и писать в другую базу. Тем более, если нужны действия "взять отсюда, создать тут, добавить сюда".

Просто гениальный совет, спасибо... А я все думаю - как???

SQL знания зачаточные совсем. Но за утро разобрался и смог собрать нужные мне данные из трех таблиц в одну, выкинув мусор. Теперь думаю как кошернее дальше.

Есть идея сконвертить данные в ХМЛ или Json и дальше обрабатывать их посредством Джанги. Как я понимаю Json - это уже готовый словарь, который бери о обрабатывай в Питоне?

Всего: 7322