Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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/1/cassandra/3.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 如何在Django中创建人类可读的URL_Python_Django - Fatal编程技术网

Python 如何在Django中创建人类可读的URL

Python 如何在Django中创建人类可读的URL,python,django,Python,Django,我正在写一个简单的应用程序博客。 Django==2.0.4 我想创建人类可读的URL。 models.py class Post(models.Model): author = models.ForeignKey('auth.User', on_delete=models.CASCADE) title = models.CharField(max_length=200) text = models.TextField() created_date = model

我正在写一个简单的应用程序博客。
Django==2.0.4

我想创建人类可读的URL。
models.py

class Post(models.Model):
    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(
        default=timezone.now)
    published_date = models.DateTimeField(
        blank=True, null=True)
在这个模型中,我将添加
slug=models.SlugField('id\u url',max\u length=255,unique=True)
,对吗?
接下来,我将添加到URL

urlpatterns = [
    path(r'', views.post_list, name='post_list'),
    path(r'post/<str:slug>/', views.post_detail, name='post_detail'),
]
urlpatterns=[
路径(r“”,views.post_list,name='post_list'),
路径(r'post/',views.post_detail,name='post_detail'),
]
对吗?

但是我不明白我需要添加什么到
views.py
中,以及是否需要我
def get_absolute\u url(self)
models.py
中,我希望您能帮助我。谢谢。

在您想要的型号中

def get_absolute_url(self):
    return '/post/%s' % (self.slug)

在您的视图中,您可以正常地编写:

def post_detail(request):
    #do something
    return render(request, 'post-detail.html', context)

-它不起作用,为什么我不明白这是我的URL和我的models.py。你的html是什么?你的模型没有名为
slug
def post_detail(request):
    #do something
    return render(request, 'post-detail.html', context)