[英]Django view AttributeError: 'str' object has no attribute 'get'
[英]AttributeError: 'str' object has no attribute 'resolve'
我正在嘗試使用Django遞歸模塊。 如果沒有按照說明在“設置國際化”下的javascript_catalog:
# 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),
)
我什至在國際化之前只看到以下內容:-遞歸“ javascript-image”的上部未顯示。 綠色文本部分(添加規則和添加日期)是唯一顯示的內容:
+Add rule+Add date
根據文檔,我期望的結果如下所示:
app / 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'),
app / forms.py
class ScheduleConfRoom(ModelForm):
class Meta:
model = Schedule
fields = ('name', 'room', 'message', 'recurrences',)
widgets = {
'message': Textarea(attrs={'cols': 25, 'rows': 6}),
}
app / views.py
class CreateConfRoom_Sch(CreateView):
form_class = ScheduleConfRoom
template_name = "schedule.html"
success_url = '/'
app / 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>
請幫忙!!! 我做錯了什么? 當我在urls.py中包含javascript_catalog時,將顯示主題中的錯誤。 但是當我沒有它時,僅顯示“ +添加規則+添加日期”。
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
追溯切換到復制和粘貼視圖
/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/>
您的回溯的locals
信息顯示它試圖使用以下字符串作為匹配模式:
pattern 'app.views'
該字符串取自您的app/urls.py
文件中的urlpatterns
序列,您只發布了其中的一部分 。
此外,您忘記了第一個規則的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'),
但是,您需要修復所有規則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.