没有弹头字段找到反向

问题描述 投票:0回答:1

[在将slug字段与get_absolute_url一起使用时出现错误。尝试了一些建议,这些建议已经在堆栈中,但是没有奏效。谁能帮我这个忙。Please refer this link for traceback.

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, 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)

urls.py

URL映射。

urlpatterns = [
    path('detail/<slug:slug>/', 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 %}
python django django-models django-templates django-views
1个回答
0
投票

删除该行页面后,由于index.html <a href="{% url 'post:detail' pk=obj.id %}"> {{obj.title}} </a>中的注释行而发生错误,因此已完美加载,应在详细信息视图中用将更多的'pk'替换为工作详细信息页面。 def detail(request,slug): #slug replaced pk

© www.soinside.com 2019 - 2024. All rights reserved.