অন্তর্ভুক্ত () অন্তর্ভুক্ত নেমস্পেস ব্যবহার করার সময় অ্যাপ_নাম সম্পর্কে ভুলভাবে কনফিগার্ডএরআর


109

আমি বর্তমানে জ্যাঙ্গো চেষ্টা করছি। আমি urls.py. এ namespaceআমার একটিতে যুক্তিটি ব্যবহার করি। include()আমি যখন সার্ভারটি চালনা করি এবং ব্রাউজ করার চেষ্টা করি তখন আমি এই ত্রুটিটি পাই।

File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\urls\conf.py", line 39, in include
    'Specifying a namespace in include() without providing an app_name '
django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead.

এগুলি আমার url.py ফাইলগুলি:

#project/urls.py

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

urlpatterns = [
    url(r'^reviews/', include('reviews.urls', namespace='reviews')),
    url(r'^admin/', include(admin.site.urls)),
]

এবং

#app/urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
    # ex: /
    url(r'^$', views.review_list, name='review_list'),
    # ex: /review/5/
    url(r'^review/(?P<review_id>[0-9]+)/$', views.review_detail, name='review_detail'),
    # ex: /wine/
    url(r'^wine$', views.wine_list, name='wine_list'),
    # ex: /wine/5/
    url(r'^wine/(?P<wine_id>[0-9]+)/$', views.wine_detail, name='wine_detail'),
]

app_nameত্রুটি বার্তায় বর্ণিত হিসাবে আমি কী পাস করব ?

উত্তর:


159

এখানে অন্তর্ভুক্ত জন্য ডক্স পরীক্ষা করুন

আপনি যা করেছেন তা পরামিতিগুলি অন্তর্ভুক্ত করার কোনও গ্রহণযোগ্য উপায় নয়। আপনি করতে পারেন:

url(r'^reviews/', include(('reviews.urls', 'reviews'), namespace='reviews')),

এই মাত্র চেষ্টা করে দেখুন এবং অন্য একটি ত্রুটি পেয়েছে ... ইউআরএল (র '^ রিভিউ /', অন্তর্ভুক্ত ('রিভিউস.আরলস', নেমস্পেস = 'রিভিউ', অ্যাপ্লিকেশন নাম = 'রিভিউ')), টাইপ-এয়ারার: ​​অন্তর্ভুক্ত () একটি অপ্রত্যাশিত পেয়েছে কীওয়ার্ড আর্গুমেন্ট 'অ্যাপ_নাম'
নেলসন এম

4
অত্যন্ত দুঃখিত. এটি প্যাটার্ন নয় মডিউলগুলির সাথে ব্যবহার করার কথা ছিল। দয়া করে আপডেট করা উত্তরটি পরীক্ষা করুন।
ইউনিক্সিয়া

4
এই সমাধানটি আমার জন্যও সহায়ক ছিল। আমি জ্যাঙ্গো -আউথ- টোলকিট.ড্রেডহেডসকস.আইও / এএন / স্লেট / টিউটোরিয়াল/… থেকে টিউটোরিয়ালটি অনুসরণ করছিলাম এবং সেখানে করার জন্য একটি নির্দেশনা রয়েছে: urlpatterns = [# OAuth 2 টি সমাপ্তি: url (r '^ o /', অন্তর্ভুক্ত ( oauth2_endPoint_views, নেমস্পেস = "oauth2_provider")), url (আর '' এপি / হ্যালো ', ApiEndPoint.as_view ()), # উদাহরণ সংস্থান শেষ পয়েন্ট]। আপনি উল্লিখিত হিসাবে এটি একই ত্রুটি উত্পন্ন করে।
কোজি ডি'আইনফিন্টে

4
Tuple-সিনট্যাক্স আমার জন্য কাজ করে নি, এটি শুধুমাত্র কাজ যখন আমি পরিবর্তিত (আমার সংস্করণ) reviews.urlএকটি আছে app_nameমধ্যে পরিবর্তনশীল django 2.1
হারবার্ট

এই জন্য ব্যবহার কেস? আমি আমার প্রকল্পে এবং একই প্যাটার্ন সহ সমস্তগুলি অন্তর্ভুক্ত url পেয়েছি: path("the_app/", include(("app.urls", <name>), namespace=<the same name>))এবং এটি বেশ বিরক্তিকর।
ব্যবহারকারী 4052054

83

জ্যাঙ্গো 1.11+, 2.0+

আপনার অন্তর্ভুক্ত থাকা url ফাইলগুলিতে আপনার অ্যাপ_নাম সেট করা উচিত

# reviews/urls.py  <-- i.e. in your app's urls.py

app_name = 'reviews'
     

তারপরে আপনি এটি করছেন এমনভাবে অন্তর্ভুক্ত করতে পারেন।

এছাড়াও, জ্যাঙ্গো ডক্স এখানে কী বলেছে তা লক্ষ করার মতো হতে পারে https://docs.djangoproject.com/en/1.11/ref/urls/# অন্তর্ভুক্ত :

সংস্করণ ১.৯ থেকে অবহেলিত: অ্যাপ_নাম আর্গুমেন্টের জন্য সমর্থন অবচিত হয়েছে এবং জাজানো ২.০ এ সরানো হবে। ইউআরএল নেমস্পেসে বর্ণিত অ্যাপ_নামটি উল্লেখ করুন এবং এর পরিবর্তে ইউআরএলকনফ অন্তর্ভুক্ত করুন।

( https://docs.djangoproject.com/en/1.11/topics/http/urls/#namespaces- and- অন্তর্ভুক্ত )


34

জাজানো ২.০ আপনার url.pyঅ্যাপ_নাম নির্দিষ্ট করতে হবে, অন্তর্ভুক্ত থাকাতে অ্যাপ_নাম যুক্তি নির্দিষ্ট করার প্রয়োজন নেই।

প্রধান ইউআরএল ফাইল।

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('', include('apps.main.urls')),
    path('admin/', admin.site.urls),
]

অন্তর্ভুক্ত url।

from django.urls import path
from . import views

app_name = 'main_app'

urlpatterns = [
    path('', views.index, name='index'),
]

তারপরে টেমপ্লেটে ব্যবহার করুন

<a href="{% url main_app:index' %}"> link </a>

আরও বিশদ: https://code.djangoproject.com/ticket/28691 জাজানো 2.0 ডক্স


4
আমি ভাবছি, অ্যাপ_নাম = "প্রধান" এর ব্যবহার কী? এবং কীভাবে জাঙ্গো এই পরিবর্তনশীলটি ব্যবহার করে
কনিষ্ক তানওয়ার

4

আমি একটি লাইব্রেরি অন্তর্ভুক্ত করেছি (সম্পূর্ণ) জাজানো ২.১ এখনও সামঞ্জস্যপূর্ণ নয় (জাজানো_আউথ_প্রো_সামল ২)। সুতরাং আমি একটি দ্বিতীয় ফাইল তৈরি saml_urls.py:

from django_saml2_pro_auth.urls import urlpatterns

app_name = 'saml'

ইউআরএলগুলি আমি এতে অন্তর্ভুক্ত করতে পারলাম:

from django.urls import include, re_path as url

urlpatterns = [
    ..., url(r'', include('your_app.saml_urls', namespace='saml')), ...
]

হ্যাকি, তবে এটি আমার পক্ষে কাজ করেছে, যদিও তা url(r'^reviews/', include(('reviews.urls', 'reviews'), namespace='reviews'))হয়নি।


0

জ্যাঙ্গো ২.২ এও আমি একই ত্রুটির মুখোমুখি হয়েছি এবং আমি এটিকে এটি সমাধান করি

urls.py ফাইল

urlpatterns = [
   path('publisher-polls/', include('polls.urls', namespace='publisher-polls')),
]

পোলস / ইউআরএল.পি ফাইল

app_name = 'polls'
urlpatterns = [
  path('', views.IndexView.as_view(), name='index')
]

উদাহরণস্বরূপ Calss ভিত্তিক ভিউ পদ্ধতিতে নেমস্পেসের ব্যবহার

def get_absolute_url(self):
    from django.urls import reverse
    return reverse('polls.index', args=[str(self.id)])

টেমপ্লেটগুলিতে নেমস্পেসের উদাহরণ

{% url 'polls:index' %}

পোলগুলি এখানে : সূচকের অর্থ অ্যাপ_নাম [ পোল / ইউআরএল.পি ফাইলে সংজ্ঞায়িত]: নাম [ পাথের ফাংশনের ভিতরে পোল / ইউআরএল.পি ফাইলের সংজ্ঞা দেওয়া ]

তাদের অফিসিয়াল যা বেশ ভাল আপনি আরও তথ্যের জন্য নামস্পেস_ডাঙ্গা_অফিশিয়াল_ডোক পরীক্ষা করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.