2016-12-03 6 views
0

Я пытаюсь использовать модуль Django-recurrence. Без javascript_catalog под «создание интернационализации» в соответствии с инструкцией:AttributeError: объект 'str' не имеет атрибута 'resolve'

# If you already have a js_info_dict dictionary, just add 
# 'recurrence' to the existing 'packages' tuple. 
js_info_dict = { 
    'packages': ('recurrence',), 
} 

# jsi18n can be anything you like here 
urlpatterns = patterns(
    '', 
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), 
) 

Все, что я вижу еще до интернационализации, ниже: - Верхняя часть reccurrence «JavaScript-изображение» не отображается. Зеленый текст часть (Добавить правило и добавить дату) является единственным указанием:

+Add rule+Add date 

Что я ожидаю согласно документации приведен ниже:

enter image description here

приложение/urls.py

js_info_dict = { 
    'packages': ('recurrence',), 
} 

urlpatterns = patterns(#'', 
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), 
    url(r'^room/$', CreateConfRoom_Sch.as_view(), name='CreateConfRoom_Sch'), 

приложение/forms.py

class ScheduleConfRoom(ModelForm): 
    class Meta: 
     model = Schedule 
     fields = ('name', 'room', 'message', 'recurrences',) 
     widgets = { 
      'message': Textarea(attrs={'cols': 25, 'rows': 6}), 
     } 

приложение/views.py

class CreateConfRoom_Sch(CreateView): 
    form_class = ScheduleConfRoom 
    template_name = "schedule.html" 
    success_url = '/' 

приложение/models.py

class Schedule(models.Model): 
    name = models.CharField(max_length=30, default='Example') 
    room = models.ForeignKey(Room) # default='Empty') 
    message = models.CharField(max_length=918) 
    recurrences = RecurrenceField() 

schedule.html

<form method="POST" action="{% url 'upload_file' %}" > 
    {% csrf_token %} 
    {{ form.media }} 
    {{ form.as_p }} 
<button type="submit">Submit</button> 
</form> 

Пожалуйста, помогите !!! Что я сделал не так? Ошибка в объекте показывает, когда у меня есть javascript_catalog в urls.py. Но когда у меня его нет, отображается только «+ Добавить правило + Добавить дату».

AttributeError at /schedule/room/ 
'str' object has no attribute 'resolve' 

Request Method:  GET 
Request URL: http://192.168.1.199:8000/schedule/room/ 

Django Version:  1.8.13 
Exception Type:  AttributeError 
Exception Value: 'str' object has no attribute 'resolve' 
Exception Location:  /usr/local/lib/python3.4/site-packages/django/core/urlresolvers.py in resolve, line 367 
Python Executable: /usr/local/bin/python3.4 
Python Version:  3.4.4 

Traceback переключатель, чтобы скопировать и вставить вид

/usr/local/lib/python3.4/site-packages/django/core/handlers/base.py in get_response 

           resolver_match = resolver.resolve(request.path_info) 

    ... 
▶ Local vars 
/usr/local/lib/python3.4/site-packages/django/core/urlresolvers.py in resolve 

            sub_match = pattern.resolve(new_path) 

    ... 
▶ Local vars 
/usr/local/lib/python3.4/site-packages/django/core/urlresolvers.py in resolve 

            sub_match = pattern.resolve(new_path) 

    ... 
▶ Local vars 

Первый след

urlconf 'mal.urls' 
middleware_method <bound method SecurityMiddleware.process_request of <django.middleware.security.SecurityMiddleware object at 0x8091b7a20>> 
response None 
resolver <RegexURLResolver 'mal.urls' (None:None) ^/> 
self  <django.core.handlers.wsgi.WSGIHandler object at 0x80836cc88> 

Второй след

pattern <RegexURLResolver <module 'app.urls' from '/usr/home/msg/code/mal/app/urls.py'> (None:None) ^schedule/> 
sub_tried None 
new_path 'schedule/room/' 
match <_sre.SRE_Match object; span=(0, 1), match='/'> 
path '/schedule/room/' 
tried [[<RegexURLResolver <RegexURLPattern list> (admin:admin) ^admin/>], 
     [<RegexURLResolver <module 'allauth.urls' from '/usr/home/msg/code/mal/allauth/urls.py'> (None:None) ^accounts/>], 
     [<RegexURLResolver <module 'app.urls' from '/usr/home/msg/code/mal/app/urls.py'> (None:None) ^upload/>]] 
self <RegexURLResolver 'mal.urls' (None:None) ^/> 

Третий трассировку

pattern 'app.views' 
new_path 'room/' 
match <_sre.SRE_Match object; span=(0, 9), match='schedule/'> 
path 'schedule/room/' 
sub_match None 
tried [[<RegexURLPattern None ^jsi18n/$>]] 
self <RegexURLResolver <module 'app.urls' from '/usr/home/msg/code/mal/app/urls.py'> (None:None) ^schedule/> 
+0

Просьба заполнить полный обзор ошибок! :) –

+1

Что такое * полная трассировка ошибки? Если вы видите сообщение об ошибке в браузере (только если для параметра «DEBUG» установлено значение «Истина»), найдите «*» для копирования и вставки вида * для отслеживания перед копированием информации, которую нужно вставить здесь. –

+0

Это только сообщение об ошибке, а не полная трассировка (которая покажет, как Django попал в эту конкретную строку). –

ответ

0

locals информация о вашем TRACEBACK показывает, что он пытался использовать следующую строку как шаблон матча:

pattern 'app.views' 

Эта строка была взята из urlpatterns последовательности в файле app/urls.py, который вы только публикуемую часть из.

Кроме того, вы забыли url функцию на первом правиле:

(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), 
#^no url 

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

urlpatterns = patterns(#'', 
    url(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), 
    url(r'^room/$', CreateConfRoom_Sch.as_view(), name='CreateConfRoom_Sch'), 

Вам нужно исправить все свои правила, однако.

+0

Я добавил ключевое слово url ... ту же ошибку. – Divino

+0

@ Divino: вы действительно перезапустили свой сервер? –

+0

@ Divino: а откуда происходит 'app.views'? Это шаблон, который дает исключение. –

Смежные вопросы