簡體   English   中英

AttributeError:'str'對象沒有屬性'resolve'

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM