Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 22, 2010 16:27:03

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите подключить TinyMCE в админку

Делаю по инструкции http://seobacks.ru/tinymce-django.html
Все вроде сделал. Пытаюсь синхронизировать БД получаю такие ошибки

Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 217, in execute
self.validate()
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 245, in validate
num_errors = get_validation_errors(s, app)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/validation.py", line 28, in get_validation_errors
for (app_name, error) in get_app_errors().items():
File "/usr/local/lib/python2.6/dist-packages/django/db/models/loading.py", line 146, in get_app_errors
self._populate()
File "/usr/local/lib/python2.6/dist-packages/django/db/models/loading.py", line 64, in _populate
self.load_app(app_name)
File "/usr/local/lib/python2.6/dist-packages/django/db/models/loading.py", line 78, in load_app
models = import_module('.models', app_name)
File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.6/dist-packages/tinymce/models.py", line 6, in <module>
from tinymce import widgets as tinymce_widgets
File "/usr/local/lib/python2.6/dist-packages/tinymce/widgets.py", line 14, in <module>
from django.forms.util import smart_unicode
ImportError: cannot import name smart_unicode
Ну и соответсвенно после перезапуска сервера дебаг выдает ошибку
Request Method:  	GET
Request URL: http://www.mysite.ru/
Django Version: 1.2.1
Exception Type: ImportError
Exception Value:

cannot import name smart_unicode

Exception Location: /usr/local/lib/python2.6/dist-packages/tinymce/widgets.py in <module>, line 14
Python Executable: /usr/bin/python
Python Version: 2.6.5
Python Path: ['/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/local/lib/python2.6/dist-packages', '/home/websrv/www/mysite/..']
Я, если честно, не совсем понимаю что от меня хотят…. Что-то с кодировками…?



Отредактировано (Июнь 22, 2010 16:28:06)

Офлайн

#2 Июнь 22, 2010 16:56:10

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Помогите подключить TinyMCE в админку

dissdoc
Что-то с кодировками…?
Если в сообщении об нерабочем импорте есть слово unicode это ещё не значит, что “что-то с кодировками”:-)

Приложение которое вы используете не совместимо с новой Джангой. Ну и автор его, конечно, большой оригинал…



Офлайн

#3 Июнь 22, 2010 17:22:31

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Помогите подключить TinyMCE в админку

Мы мудохались с этой проблемой. Дело в том, что smart_unicode переехал в другое место.
Сначала наложили патчик, который изменял этот импорт, а сейчас уже достаточно обновить tinymce.

P.S. И всё-таки визивик это шлак. Используйте языки семантической разметки вроде markdown.



Офлайн

#4 Июнь 23, 2010 14:46:22

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите подключить TinyMCE в админку

Вот блин )))
Markdown все давно хотел попробовать, да все времени не было. Сама судьба меня ведет к нему ))



Офлайн

#5 Июнь 23, 2010 16:01:44

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Помогите подключить TinyMCE в админку

Ну ёперный налево! У нас необходимость была, ибо редакторы тупые и им ворд в бравузере, блин, подавай, а то они работать не могут…
А если уж типа программер, то на кой хрен визивик? Текст должен быть размечен семантически, а не “типа красиво”.



Офлайн

#6 Июнь 23, 2010 17:16:23

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите подключить TinyMCE в админку

Беда в том, что ЭТИМ должна будет пользоваться девочка, знающая ворд. Но компромисс нашли - мануал нуно составить ей.

Так, появилась проблема с русскими символами. :( Постараюсь максимально подробно описать. Что есть (сокращаю, чтобы не загружать вас кодом)

from django.db import models

class NewsPost(models.Model):
descr = models.TextField(editable=False)
descr_markdown = models.TextField()

def __unicode__(self):
return '%s' % self.pk

def save(self):
import markdown2
self.descr = markdown2.markdown(self.descr_markdown)
super(NewsPost, self).save()
Выдается ошибка
'ascii' codec can't encode characters in position 3-6: ordinal not in range(128)
Понятное дело - русские символы она не понимает. Если сделать так
self.descr = markdown2.markdown(self.descr_markdown).encode("CP1251")
Или так
self.descr = unicode(markdown2.markdown(self.descr_markdown))
То вылетает при добавлении записи вот так
Incorrect string value: '\xD2\xE5\xF1\xF2</...' for column 'descr' at row 1
Как вы с этим боролись? :(



Офлайн

#7 Июнь 23, 2010 18:07:55

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Помогите подключить TinyMCE в админку

У меня небыло таких проблем. Я в базе держу сырой markdown, а вывожу его так:

# coding: utf-8

from django import template
from django.utils.safestring import mark_safe

import markdown


register = template.Library()

@register.filter(name='show_post')
def show_post(post):
html = markdown.markdown(post, ['codehilite'])
return mark_safe(html)
P.S. Я полный лам в джанге, так что не пинайте, если что не так.
P.P.S. А ещё есть django-markup, но я его не стал использовать, чтобы чего-то научиться. :-)



Офлайн

#8 Июнь 25, 2010 09:24:13

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите подключить TinyMCE в админку

Не, здесь я бестолковый! Все делаю в uft-8 сам же допустил ошибку (копипастил). Вот так надо

self.descr = markdown2.markdown(self.descr_markdown).encode("utf-8")
Все сразу заработало :(



Отредактировано (Июнь 25, 2010 09:24:35)

Офлайн

#9 Июнь 25, 2010 11:42:16

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Помогите подключить TinyMCE в админку

И всё-таки хранить в базе html не красиво.
Вот что ты будешь делать, если тебе захочется переделать форматирование и нужно будет изменить генерацию html?



Офлайн

#10 Июнь 25, 2010 15:30:48

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите подключить TinyMCE в админку

Да, вы правы. Тут есть свои нюансы. Пока так оставлю, но скорее всего придется адаптировать на ошибки. Спасибо за совет.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version