Python 找不到具有slug字段的反转
使用带有slug字段的get_absolute_url时出错。我尝试了一些已经存在于堆栈中但不起作用的建议。谁能帮我做这个吗。 models.py 模型中的代码Python 找不到具有slug字段的反转,python,django,django-models,django-templates,django-views,Python,Django,Django Models,Django Templates,Django Views,使用带有slug字段的get_absolute_url时出错。我尝试了一些已经存在于堆栈中但不起作用的建议。谁能帮我做这个吗。 models.py 模型中的代码 from django.urls import reverse class Post(models.Model): title = models.CharField(max_length=50) user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1,
from django.urls import reverse
class Post(models.Model):
title = models.CharField(max_length=50)
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, on_delete=models.CASCADE)
draft = models.BooleanField(default=False)
publish = models.DateTimeField(auto_now=False, auto_now_add=False)
slug = models.SlugField(unique=True)
image = models.ImageField(upload_to=upload_location,
null=True,
blank=True,
width_field="width_field",
height_field="hieght_field")
hieght_field = models.IntegerField(default=0)
width_field = models.IntegerField(default=0)
content = models.TextField()
updates = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
def get_absolute_url(self):
return reverse('post:detail', kwargs={'slug':self.slug})
Views.py
视图中的代码
def post_list(request):
queryset_list = Post.objects.active()
if request.user.is_staff or request.user.is_superuser:
queryset_list = Post.objects.all()
query = request.GET.get('q')
if query:
queryset_list = queryset.filter(
Q(title__icontains=query)
).distinct()
context = {
'object_list':queryset_list,
'posts': page,
"page_request_var": page_request_var,
}
return render(request, 'index.html', context)
url.py
URL映射
urlpatterns = [
path('detail/<slug:slug>/', views.detail, name='detail'),
]
urlpatterns=[
路径('detail/',views.detail,name='detail'),
]
html页面
index.html中的代码
{% for obj in object_list %}
<div class="container">
<p class="card-text">{{obj.content|linebreaks|truncatechars:120}}</p>
<a href="{{obj.get_absolute_url}}" class="btn btn-primary">View</a>
<!-- <a href="{% url 'post:detail' pk=obj.id %}"> {{obj.title}} </a> -->
</div>
{% endfor %}
{对象列表%中的对象的%
{{obj.content | linebreaks | truncatechars:120}
{%endfor%}
由于index.html中的注释行而发生错误
删除此行后,页面已完全加载,另外一件事“pk”应在工作详细信息页面的详细信息视图中替换为slug<代码>def详细信息(请求,段塞):#段塞替换主键