Django主键url问题



我正在做一个简单的博客项目。在我的项目中,有一个页面上有所有博客文章的列表。如果你点击帖子的标题,你就会被带到帖子上。我使用了(?P\d+(I URL路径,这样用户就可以被引导到正确的帖子。然而,这并没有奏效。任何帮助都将不胜感激。

all_posts.html

{% extends "base.html" %}
{% block content %}
<div class="container">
<h1>Blog Posts</h1>
</div>
<div class="container">
{% for blog_post in object_list %}
<table class="table table-striped">
<ul class="list-group">
<li><a class="btn btn-primary" href="{% url 'blog_app:view' pk=blog_post.pk %}">{{ blog_post.post_title }}</a></li>
</ul>
</table>
{% endfor %}
</div>
{% endblock %}

modles.py

from django.db import models
# Create your models here.
class Blog_Post(models.Model):
slug = models.SlugField(max_length=1000, editable=False, null=True)
post_title = models.CharField(max_length=100, editable=True, blank=False, null=True)
blog_content = models.TextField(max_length=10000, blank=False, editable=True, null=True)
files = models.FileField(blank=True, null=True, upload_to=True)
date = models.DateTimeField(blank=False, null=True, auto_now=True, editable=False)
likes = models.IntegerField(blank=True, null=True, editable=False)

urls.py

from django.urls import path
from . import views
app_name = "blog_app"
urlpatterns = [
path('create/', views.create_blog_post.as_view(), name='create'),
path('view/(?P<pk>d+)/', views.view_blog_post.as_view(), name='view'),
path('all_posts/', views.all_blog_posts.as_view(), name='all'),
path('delete/<slug:slug>', views.delet_blog_post.as_view(), name='delete')
]

path适用于slug、str、int等转换器,要使用regex,需要re_path

您可以将其重新定义为"view/<int:pk>/"

{% extends "base.html" %}
{% block content %}
<div class="container">
<h1>Blog Posts</h1>
</div>
<div class="container">
{% for blog_post in object_list %}
<table class="table table-striped">
<ul class="list-group">
<li><a class="btn btn-primary" href="{% url 'blog_app:view' pk=blog_post.pk %}">{{ blog_post.post_title }}</a></li>
</ul>
</table>
{% endfor %}
</div>
{% endblock %}

我想问题出在这条线上

<li><a class="btn btn-primary" href="{% url 'blog_app:view' pk=blog_post.pk %}">

当你在url标签中发送数据时,你不会将其分配给prametars,右边的行是:

<li><a class="btn btn-primary" href="{% url 'blog_app:view' blog_post.pk %}">

相关内容

  • 没有找到相关文章

最新更新