Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python category()获取了意外的关键字参数';类别(名称)(slug)x27 ;;_Python_Django - Fatal编程技术网

Python category()获取了意外的关键字参数';类别(名称)(slug)x27 ;;

Python category()获取了意外的关键字参数';类别(名称)(slug)x27 ;;,python,django,Python,Django,我是django的初学者,在django教程中尝试探戈。但我得到了一个无法理解的错误,我无法纠正。我得到以下错误: TypeError at /rango/category/python/ category() got an unexpected keyword argument 'category_name_slug' 调试错误显示为包含在核心django处理程序文件中,而不是包含在应用程序文件中,如下所示: Exception Type: TypeError Exception Value

我是django的初学者,在django教程中尝试探戈。但我得到了一个无法理解的错误,我无法纠正。我得到以下错误:

TypeError at /rango/category/python/
category() got an unexpected keyword argument 'category_name_slug'
调试错误显示为包含在核心django处理程序文件中,而不是包含在应用程序文件中,如下所示:

Exception Type: TypeError
Exception Value:    
category() got an unexpected keyword argument 'category_name_slug'
Exception Location: c:\virtualenv\rango\lib\site-packages\django\core\handlers\base.py in get_response, line 111
views.py

from django.shortcuts import render
from django.http import HttpResponse
from rango.models import Category
from rango.models import Page

def index(request):
    category_list_likes = Category.objects.order_by('-likes')[:5]
    category_list_views = Category.objects.order_by('-views')[:5]
    context_dict = {
        'categories_likes': category_list_likes,
        'categories_views': category_list_views,
    }
    return render(request, 'rango/index.html', context_dict)

def about(request):
    return render(request, 'rango/about.html')

def category(request, category_name_url):
    context_dict = {}
    try:
        category = Category.objects.get(slug=category_name_slug)
        context_dict['category_name'] = category.name
        pages = Page.objects.filter(category=category)
        context_dict['pages'] = pages
        context_dict['category'] = category
    except Category.DoesNotExist:
        pass
    return render(request, 'rango/category.html', context_dict)
models.py

from django.db import models
from django.template.defaultfilters import slugify

class Category(models.Model):
    name = models.CharField(max_length=128, unique=True)
    views = models.IntegerField(default=0, unique=False)
    likes = models.IntegerField(default=0, unique=False)
    slug = models.SlugField(unique=True)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.name)
        super(Category, self).save(*args, **kwargs)

    def __unicode__(self):
        return self.name

class Page(models.Model):
    category = models.ForeignKey(Category)
    title = models.CharField(max_length=128)
    url = models.URLField()
    views = models.IntegerField(default=0, unique=False)

    def __unicode__(self):
        return self.title
url.py

from django.conf.urls import patterns, url
from rango import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'about/', views.about, name = 'About'),
    url(r'category/(?P<category_name_slug>[\w\-]+)/$', views.category, name='category'),)

您应该将url定义更改为:

url(r'category/(?P<slug>[\w\-]+)/$', views.category, name='category')
url(r'category/(?P[\w\-]+)/$”,views.category,name='category')
您的
category()
视图需要
category\u name\u url
参数:

def category(request, category_name_url):
    ...
url(r'category/(?P<category_name_slug>[\w\-]+)/$', views.category,
                                                   name='category'),
url(r'category/(?P<slug>[\w\-]+)/$', views.category, name='category'),
但是在
urls.py
中定义
category\u name\u slug
参数:

def category(request, category_name_url):
    ...
url(r'category/(?P<category_name_slug>[\w\-]+)/$', views.category,
                                                   name='category'),
url(r'category/(?P<slug>[\w\-]+)/$', views.category, name='category'),
但是在
urls.py
中定义
category\u name\u slug
参数:

def category(request, category_name_url):
    ...
url(r'category/(?P<category_name_slug>[\w\-]+)/$', views.category,
                                                   name='category'),
url(r'category/(?P<slug>[\w\-]+)/$', views.category, name='category'),
url(r'category/(?P[\w\-]+)/$”,views.category,name='category'),

谢谢!我意识到了争论中的错误。但是在进行更改并在views.py和url.py中添加了
category\u name\u slug
之后,我仍然得到以下错误。
Exception Value:category()在get\u响应中得到了一个意外的关键字参数'category\u name\u slug'异常位置:c:\virtualenv\rango\lib\site packages\django\core\handlers\base.py,第111行
我也不明白为什么在virtualenv django核心文件中引发异常。请重新加载服务器。异常恰好在发生的位置引发-django试图使用错误的关键字参数调用视图。url正则表达式代码存在问题。将
url(r'category/(?P[\w-]+)/$,views.category,name='category'),
更改为
url(r'^category/(?P[\w-]+)/$,views.category,name='category'),
非常感谢!