当将一个外键int作为参数传递给路径时,我得到了一个404错误



这是我正在尝试的url:

http://localhost:8000/blog/categoria/1/

外键是categori_id,它来自Post和categoria的多对多关系。

我正在使用Sqlite3。

此文件是models.py

from django.db import models
from django.contrib.auth.models import User

class Categoria(models.Model):
nombre=models.CharField(max_length=50)
created=models.DateTimeField(auto_now_add=True)
updated=models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name='categoria'
verbose_name_plural='categorias'

def __str__(self):
return self.nombre

class Post(models.Model):
titulo=models.CharField(max_length=50)
contenido=models.CharField(max_length=50)
imagen=models.ImageField(upload_to='blog', null=True, blank=True)
autor=models.ForeignKey(User, on_delete=models.CASCADE)
categorias=models.ManyToManyField(Categoria)

created=models.DateTimeField(auto_now_add=True)
updated=models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name='post'
verbose_name_plural='posts'

def __str__(self):
return self.titulo

此文件是views.py:

from django.shortcuts import render
from blog.models import Post, Categoria


def blog(request):
posts=Post.objects.all()
return render(request, "blog/blog.html",{"posts":posts})
def categoria(request, categoria_id):
categoria=Categoria.objects.get(id=categoria_id)
posts=Post.objects.filter(categorias=categoria)
return render(request, "blog/categoria.html",{'categoria': categoria, "posts":posts })

此文件是urls.py

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [

path('', views.blog, name='Blog'),
path('categoria/<int:categoria_id>/', views.categoria, name="categoria")

]

我将数据库更改为postgresql,并在文件urls.py中添加了一个/before categoria。目前它可以工作。这很奇怪,因为我以前做过这些更改,但没有成功。

尽管如此,如果有任何建议,我将不胜感激。非常感谢。

此文件是更改后的urls.py:

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [

path('', views.blog, name='Blog'),
path('/categoria/<int:categoria_id>/', views.categoria, name='categoria'),

]

相关内容

最新更新