2013-08-01 5 views
0

как часть моего продолжающегося желания хорошо преуспеть на моем курсе Uni, я делаю немного веб-разработчика в Python (2.7) с помощью Django. Я последовал за учебником Django, и теперь я следую этому руководству. Тем не менее, я получаю несколько необъяснимую ошибку, когда добавляю в часть urls.py, чтобы дать мне некоторые модели просмотра. Проект называется «практикой», и приложение называется «заказы». В «заказы» являются модели (которые все Validate)Ошибка Django с (CRUD) urls.py

The (соответствующая часть) urls.py является:

'django.views.generic.list_details', 
url(r'^orders/$', 'object_list', {'queryset': 'orders.Product.objects.all()'}), 
url(r'^orders(?P<slug>[-\W]+)/$', 'object_detail', {'queryset': 'orders.Product.objects.all()'}) 

Я проверил ROOT_URLCONF правильно установлен так, ошибка, кажется, где-то в пределах 'django.views.generic.list_details' как использование.

Сообщение об ошибке: AttributeError: 'str' object has no attribute resolve

Хороший Google, похоже, не производят ничего разумного так любой шанс рукой пожалуйста, ребята?

Спасибо!

+0

Да, извините, это была опечатка с моим вопросом, а не проблема с кодом! – BrownE

+0

Не знаю, если это еще одна опечатка или ваша проблема, но потеряйте одинарные кавычки вокруг 'orders.Product.object.all()'. – knbk

+0

Да, я пробовал это с и без кавычек. На каком-то веб-сайте где-то рекомендуется использовать его, и он продолжал работать (такое же сообщение об ошибке). – BrownE

ответ

0

Вы забыли «узоры»?

urlpatterns = patterns('', 
    (r'^$', ...), 
    # ... 

Также я заметил слэш недостающую:

url(r'^orders(?P<slug>[-\W]+)/$', 'object_detail', {'queryset': 'orders.Product.objects.all()'}) 
url(r'^orders/(?P<slug>[-\W]+)/$', 'object_detail', {'queryset': 'orders.Product.objects.all()'}) 
0

AttributeError подсказывает мне, что строка 'django.views.generic.list_details' обрабатывается как URL, чтобы быть решена. Тем не менее, вы пропустили слишком много своего urls.py, чтобы сказать наверняка.

Убедитесь, что строка префикса содержит первый аргумент для django.conf.urls.patterns. Если вы хотите, чтобы разбить свои адреса и использовать различные префиксов, вызывать patterns несколько раз, как описано в documentation:

urlpatterns = patterns('myapp.views', 
    url(r'^$', 'app_index'), 
    url(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/$','month_display'), 
) 

urlpatterns += patterns('weblog.views', 
    url(r'^tag/(?P<tag>\w+)/$', 'tag'), 
) 
0

Вы цитируемый значение в аргументах словаря в каждом шаблоне, поэтому он рассматривается как строка. Надо:

url(r'^orders/$', 'object_list', {'queryset': orders.Product.objects.all()}) 

не то вам придется импортировать orders - разве Вряд ли получится, потому Product будут определены в файле модели внутри заказов. Было бы проще просто импортировать Продукт и обращаться к нему напрямую.

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