Python category()获取了意外的关键字参数';类别(名称)(slug)x27 ;;
我是django的初学者,在django教程中尝试探戈。但我得到了一个无法理解的错误,我无法纠正。我得到以下错误: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
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'),
非常感谢!