在查找如何将在网址中捕获的var传递给我的视图时遇到一些麻烦。
说我有这样的模特......
title = models.CharField()
和......的标题。
title = 'this is a post'
那么django会如何捕获URL中的内容......
url/this_is_a_post/
并像这样查找模型字段......
x = Post.objects.get(title ='这是帖子')
我有另一个网址正在捕获其中包含空格的名称,当我使用带有" _"&#的网址时,它会正确查找,但在此处它告诉我没有匹配的查询。我试图查看文档,但我找不到任何东西,虽然我知道它必须在那里,某处。
答案 0 :(得分:2)
在模型中使用两个文件,比如说;
class Post(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=100)
在保存你的帖子的同时,你也应该保存slug;
在观点中;
from django.template.defaultfilters import slugify
post = Post.objects.create(title=title, slug=slugify(title))
这个slu will对每个帖子都是独一无二的。
在urls.py
url(r'^(?P<slug>[\w-]+)/$', 'myapp.views.post_detail', name='post_detail'),
在views.py
中def post_detail(request, slug):
x = Post.objects.get(slug=slug)
答案 1 :(得分:0)
在models.py中:
title = models.SlugField(unique=True)
在urls.py中:
urlpatterns = [
...
url(r'^(?P<title>\d+)/$', views.article_view, name = 'article_detail'),
...
]
在views.py中:
def article_view(request, title):
...
article = get_object_or_404(Article, title=title)
...
template.html中的:
<a href="{% url 'article_detail' title=article.title %}">