我正在尝试使用我安装的slugifypip3 install slugify.但是,在解释器中,如果我尝试敲击字符串,'hello'我会看到以下内容:
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
Type "copyright", "credits" or "license" for more information.
IPython 5.1.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: from slugify import slugify
In [2]: slugify('hello')
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-2-a58110f37579> in <module>()
----> 1 slugify('hello') …Run Code Online (Sandbox Code Playgroud) 在这种情况下使用 slug 并使其正常工作的最佳方法是什么。我可以看到浏览器上的 URL 显示了请求的项目,但我无法呈现详细页面。我找不到问题的出处。当我访问“page_detail”时,url 是“ http://127.0.0.1:8000/posts/2019/03/23/greetings/ ”,根据我的输入这是正确的,但 django 会抛出一个错误来呈现页面。错误是: TypeError: post_detail() got an unexpected keyword argument 'slug'
模型:
class Post(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250,
unique_for_date='publish')
author = models.ForeignKey(User, on_delete = models.CASCADE, related_name='blog_posts')
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10,
choices=STATUS_CHOICES,
default='draft')
published = PublishedManager() # Custom Model Manager
def get_absolute_url(self):
''' Canonical URL for post detail.'''
return reverse('snippets:post-detail',
args=[self.publish.year,
self.publish.strftime('%m'),
self.publish.strftime('%d'), …Run Code Online (Sandbox Code Playgroud)