如何解决href属性中的Django动态网址错误
您好,我正在尝试查看 articles/profile/<int:author_id>
上的个人资料页面
当我添加个人资料页面链接时,导航栏不起作用。如果我从 articles:profile article.author_id
中删除 navbar.html
,所有链接都有效。
我的错误信息在这里:
noreverseMatch 在 /
未找到带有参数 '('',)' 的 'profile' 反转。尝试了 1 个模式:['articles/profile/(?P
views.py
def profile(request,author_id):
article = get_object_or_404(Article,author_id = author_id)
context = {
"article":article,}
form = ArticleForm(request.POST or None,request.FILES or None)
if form.is_valid():
article = form.save(commit=False)
article.author = request.user
article.save()
messages.success(request,"Dosya Yüklendi")
return redirect("article:dashboard")
return render(request,"profile.html",{"article":article,'form':form})
导航栏.html
<nav class="navbar navbar-toggleable-md navbar-inverse fixed-top bg-inverse">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="{% url 'index' %}">YB Blog</a>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="{% url 'about' %}">Hakkımızda</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="{% url 'article:articles' %}">Makaleler</a>
</li>
</ul>
<ul class="navbar-nav ml-auto">
{% if request.user.is_authenticated %}
<li class="nav-item active">
<a class="nav-link" href="{% url 'article:dashboard' %}">Makale Ekle</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="{% url 'article:profile' article.author_id %}">Makale Ekle</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="{% url 'user:logout' %}">Çıkış Yap</a>
{% else %}
<li class="nav-item active">
<a class="nav-link" href="{% url 'user:login' %}">Giriş Yap</a>
</li>
{% endif %}
<li class="nav-item active">
<a class="nav-link" href="{% url 'user:register' %}">Kayıt Ol</a>
</li>
</ul>
</div>
</nav>
urls.py
from django.contrib import admin
from django.urls import path
from . import views
app_name = "article"
urlpatterns = [
path('profile/<int:author_id>',views.profile,name = "profile"),path('dashboard/',views.dashboard,name = "dashboard"),path('addarticle/',views.addArticle,name = "addarticle"),path('article/<int:id>',views.detail,name = "detail"),path('update/<int:id>',views.updateArticle,name = "update"),path('delete/<int:id>',views.deleteArticle,name = "delete"),path('',views.articles,name = "articles"),path('comment/<int:id>',views.addComment,name = "comment"),]
profile.html
{% extends 'layout.html' %}
{% block body %}
<h1>Profile Sayfası<h1>
<small> Merhaba Hoşgeldin,{{article.author.username}}<small>
<hr>
<p>
</p>
{% if article.author.username == "admin" %}
<h2>Admin Hakları:</h2>
<small>Buradan Dosya Yükleyebilirsin</small>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Dosya Yükle</button>
</form>
{% endif %}
{% endblock body %}
models.py
from django.db import models
from ckeditor.fields import RichTextField
class Article(models.Model):
author = models.ForeignKey("auth.User",on_delete = models.CASCADE,verbose_name = "Yazar ")
title = models.CharField(max_length = 50,verbose_name = "Başlık")
content = RichTextField()
created_date = models.DateTimeField(auto_Now_add=True,verbose_name="Oluşturulma Tarihi")
article_image = models.FileField(blank = True,null = True,verbose_name="Makaleye Fotoğraf Ekleyin")
def __str__(self):
return self.title
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。