سؤال

أتابع البرنامج التعليمي Django وحصلت على خطأ في الجزء 4 من البرنامج التعليمي. وصلت إلى الجزء الذي أكتب فيه تصويت عرض، والذي يستخدم يعكس لإعادة توجيه إلى وجهة نظر أخرى. لسبب ما، فشل العكس مع الاستثناء التالي:

يستورد() يجب أن تكون الوسيطة 1 سلسلة، وليس Instancemethod

حاليا URL.Py مشروعي في الوقت الحالي

from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^polls/', include('mysite.polls.urls')),
(r'^admin/(.*)', include(admin.site.root)),
)

وتطبيق URL.py هو:

from django.conf.urls.defaults import *

urlpatterns = patterns('mysite.polls.views',
     (r'^$', 'index'),
     (r'^(?P<poll_id>\d+)/$', 'details'),
     (r'^(?P<poll_id>\d+)/results/$', 'results'),
     (r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)

وجهة نظر الأصوات هي: (لقد قمت بتبسيطه للحصول على الصف فقط مع الخطأ)

def vote(request, poll_id):
    return HttpResponseRedirect(reverse('mysite.polls.views.results', args=(1,)))

عندما أزلت عناوين URLLS Admin من URL.py للمشروع، أي مما يجعله في:

urlpatterns = patterns('',
    (r'^polls/', include('mysite.polls.urls')),
#(r'^admin/(.*)', include(admin.site.root)),
)

إنها تعمل.

لقد جربت أشياء كثيرة ولا أستطيع أن أفهم ما أفعله خطأ.

هل كانت مفيدة؟

المحلول

لقد تغيرت الطريقة التي تتضمن عناوين URL للمسؤول عدة مرات خلال آخرين من الإصدارات. من المحتمل أن تستخدم التعليمات الخاطئة لإصدار Django الذي قمت بتثبيته.

إذا كنت تستخدم الجذع الحالي - أي ليس إصدارا رسميا - ثم الوثائق في http://docs.djangoproject.com/en/dev/ صحيح.

ومع ذلك، إذا كنت تستخدم 1.0.2، فعليك اتباع الرابط في الجزء العلوي من الصفحة إلى http://docs.djangoproject.com/en/1.0/.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top