Python 在include()中指定命名空间,但不提供应用程序名称。给出应用程序的名称也不会';行不通
请帮忙。我得到这个错误: '在include()中指定命名空间而不提供应用程序名称' django.core.exceptions.ImpropertlyConfigured:在中指定命名空间 不支持不提供应用程序名称的include()。设定 包含模块中的app_name属性,或传递一个2元组 而是包含模式列表和应用程序名称 products\url.py:Python 在include()中指定命名空间,但不提供应用程序名称。给出应用程序的名称也不会';行不通,python,django,Python,Django,请帮忙。我得到这个错误: '在include()中指定命名空间而不提供应用程序名称' django.core.exceptions.ImpropertlyConfigured:在中指定命名空间 不支持不提供应用程序名称的include()。设定 包含模块中的app_name属性,或传递一个2元组 而是包含模式列表和应用程序名称 products\url.py: from django.conf import settings from django.conf.urls.static impor
from django.conf import settings
from django.conf.urls.static import static
from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import TemplateView
from carts.views import cart_home
from .views import home_page, about_page, contact_page, login_page, register_page
app_name = 'products'
urlpatterns = [
url(r'^$', home_page, name='home'),
url(r'^about/$', about_page, name='about'),
url(r'^contact/$', contact_page, name='contact'),
url(r'^login/$', login_page,name='login'),
#url(r'^cart/', include("carts.urls"),
url(r'^register/$', register_page, name='register'),
url(r'^bootstrap/$', TemplateView.as_view(template_name='bootstrap/example.html')),
url(r'^products/', include("products.urls", namespace='products')),
url(r'^admin/', admin.site.urls),
]
from django.conf.urls import url
from .views import(
ProductListView,
ProductDetailSlugView,
)
urlpatterns = [
url(r'^$', ProductListView.as_view(), name='list'),
url(r'^(?P<slug>[\w-]+)/$', ProductDetailSlugView.as_view(), name='detail'),
]
指定了
命名空间的包含的URL模块必须在其URL.py
中声明唯一的应用程序名称
,以允许Django
多个url.py
没有app\u name
在一个默认名称空间中。如果为URL集声明了不同的名称空间,则它们需要具有唯一的应用程序名称。您有多少个应用程序?这是主URL.py吗?@SrijwalR,是的!然后你可以分别为每个应用程序编写特定的URL.py,对吗?然后将它们包含在主URL中。pyI已经编写好了。请看一看。
import random
import os
from django.db import models
from django.db.models.signals import pre_save, post_save
from django.urls import reverse
from .utils import unique_slug_generator
def get_filename_ext(filepath):
basename = os.path.basename(filepath)
name, ext = os.path.splitetext(base_name)
return name, ext
def upload_image_path(instance, filename):
# print(instance)
# print(filename)
new_filename = random.randint(1, 3910209312)
name, ext = get_filename_ext(filename)
final_filename = '{new_filename}{ext}',format(new_filename=new_filename, ext=ext)
return "products/{new_filename)/{final_filename}",format(
new_filename=new_filename,
final_filename=final_filename
)
class ProductQuerySet(models.query.QuerySet):
def active( self ):
return self.filter(active = True)
def featured( self ):
return self.filter(featured = True, active = True)
class ProductManager(models.Manager):
def get_queryset( self ):
return ProductQuerySet(self.model, using = self._db)
def all( self ):
return self.get_queryset().active()
def featured( self ): #Product.objects.featured
return self.get_queryset().featured()
def get_by_id( self, id ):
qs = self.get_queryset().filter(id = id)
if qs.count() == 1:
return qs.first()
return None
class Product(models.Model):
title = models.CharField(max_length=120)
slug = models.SlugField(blank=True, unique=True)
description = models.TextField()
price = models.DecimalField(decimal_places=2, max_digits=20, default=39.99)
image = models.ImageField(upload_to=upload_image_path, null=True, blank=True)
featured = models.BooleanField(default=False)
active = models.BooleanField(default=True)
timestamp = models.DateTimeField(auto_now_add=True)
objects = ProductManager()
def __str__(self):
return self.title
def __unicode__(self):
return self.title
@property
def name(self):
return self.title
def product_pre_save_receiver(sender, instance, *args, **kwargs):
if not instance.slug:
instance.slug = unique_slug_generator(instance)
pre_save.connect(product_pre_save_receiver, sender=Product)