2016-07-15 10 views
11

मैं नया हूँ django और अजगर को शामिल किया जाना चाहिए। विचारों मैं त्रुटि निम्न हो रही करने के लिए यूआरएल मानचित्रण के दौरान: लेखन त्रुटि: दृश्य एक प्रतिदेय या के मामले में एक सूची/टपल शामिल होना चाहिए()।लेखन त्रुटि: दृश्य एक प्रतिदेय या के मामले में एक सूची/टपल()

Urls। py कोड: -

from django.conf.urls import url 
from django.contrib import admin 


urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^posts/$', "posts.views.post_home"), #posts is module and post_home 
]            # is a function in view. 

views.py कोड: -

from django.shortcuts import render 
from django.http import HttpResponse 
# Create your views here. 
#function based views 

def post_home(request): 
    response = "<h1>Success</h1>" 
    return HttpResponse(response) 

Traceback

enter image description here

+2

टेक्स्ट की एक छवि पोस्ट करने के बजाय, वास्तविक टेक्स्ट पोस्ट करें। – Sayse

+1

इस एआरएल (आर '^ एडमिन /', (admin.site.urls)) के साथ अपने व्यवस्थापक यूआरएल पैटर्न को बदलें। आयात करें- django.conf.urls आयात से 'शामिल करें ' – kapilsdv

उत्तर

26

1.10 में, तुम अब url() करने के लिए आयात पथ पारित कर सकते हैं, आप वास्तविक दृश्य समारोह पारित करने के लिए की जरूरत है:

from posts.views import post_home 

urlpatterns = [ 
    ... 
    url(r'^posts/$', post_home), 
]   
+0

आपकी त्वरित प्रतिक्रिया के लिए धन्यवाद और यह करने का यह सही तरीका है। लेकिन जब हमें एक ही विचार से अधिक कार्य होते हैं तो हमें क्या करना है? किसी भी सुझाव पर? –

+0

मुझे बिल्कुल यकीन नहीं है कि आपका क्या मतलब है। एक ही दृश्य मॉड्यूल से अधिक फ़ंक्शन? यदि ऐसा है, तो बस उन्हें सभी आयात करें: 'पदों से .views post_home आयात करें, अन्य_दृश्य'। – knbk

+0

क्या होगा यदि कोई वर्ग आधारित विचारों का उपयोग कर रहा है? –

2

इस

url(r'^admin/', include(admin.site.urls)) 
के साथ अपने व्यवस्थापक यूआरएल ढांचा बदलें

तो अपने urls.py हो जाता है:

from django.conf.urls import url, include 
from django.contrib import admin 


urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^posts/$', "posts.views.post_home"), #posts is module and post_home 
] 

व्यवस्थापक यूआरएल प्रतिदेय द्वारा (1.9 से पहले) शामिल हैं।

+0

' admin.site.urls' एकमात्र ऐसा मामला है जहां आपको वास्तव में' शामिल() 'का उपयोग नहीं करना चाहिए। ऐसा करने से परिणामस्वरूप एक बहिष्करण चेतावनी होगी, क्योंकि 1.9 में 'शामिल() 'में परिवर्तन' admin.site.urls' कैसे काम करता है के साथ असंगत हैं। इस पर [डॉक्स] (https://docs.djangoproject.com/en/1.9/ref/contrib/admin/#hooking-adminsite-instances-into-your-urlconf) भी देखें। – knbk

+0

बिल्कुल .... मैंने डॉक्टर में भी पढ़ा। हमें व्यवस्थापक के लिए शामिल() का उपयोग नहीं करना चाहिए। लेकिन मैंने कपिल द्वारा दिए गए समाधान की कोशिश की। –

+0

@knbk, आप सही हैं, लेकिन यह असंगत नहीं है और कोई भी बहिष्करण चेतावनी नहीं उठाएगा (अब कम से कम) और हाँ, अभी यह आवश्यक नहीं है। धन्यवाद। – kapilsdv

0

उत्तर परियोजना-निर्देशिका/urls.py

 
Including another URLconf 
    1. Import the include() function: from django.conf.urls import url, include 
    2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) 
में है
0

बस @knbk से उत्तर देने के लिए, हम नीचे दिए गए टेम्पलेट का उपयोग कर सकते हैं:

1.9 में है के रूप में:

from django.conf.urls import url, include 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), #it's not allowed to use the include() in the admin.urls 
    url(r'^posts/$', include(posts.views.post_home), 
] 

के रूप में 1.10 में होना चाहिए:

from your_project_django.your_app_django.view import name_of_your_view 

urlpatterns = [ 
    ... 
    url(r'^name_of_the_view/$', name_of_the_view), 
] 

your_app_django में बनाने के लिए याद रखें >> समारोह आपके विचार प्रस्तुत करने के लिए views.py।

1
Django 1.11.2 लिए


मुख्य urls.py लिखने में:

from django.conf.urls import include,url 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^posts/', include("Post.urls")), 
] 

और APPNAME/urls.py फ़ाइल लिखने में:

from django.conf.urls import url 
from . import views 

urlpatterns = [ 
    url(r'^$',views.post_home), 
] 
0

आप वास्तविक दृश्य में उत्तीर्ण होना समारोह

posts.views आयात post_home से

urlpatterns = [ ... यूआरएल (आर '^ पदों/$', post_home), ]

यह ठीक काम करता है! आप URL Dispatcher Django पर पढ़ सकते हैं और यहां Common Reguler Expressions Django URLs

संबंधित मुद्दे