Я пытаюсь использовать модуль 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
Что я ожидаю согласно документации приведен ниже:
приложение/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/>
Просьба заполнить полный обзор ошибок! :) –
Что такое * полная трассировка ошибки? Если вы видите сообщение об ошибке в браузере (только если для параметра «DEBUG» установлено значение «Истина»), найдите «*» для копирования и вставки вида * для отслеживания перед копированием информации, которую нужно вставить здесь. –
Это только сообщение об ошибке, а не полная трассировка (которая покажет, как Django попал в эту конкретную строку). –