我正在建立一个博客网站,我为每篇文章设置了一个独特的标题。我想这篇文章应该有网址domain_name/<article_title>/
。
假设我有模型A和摩尔B:
class A(models.Model):
title = models.CharField(max_length=500,unique=True)
class B(models.Model):
title = models.CharField(max_length=500,unique=True)
app.urls.py file :
urlpatterns = [
path('',view.index,name="index"),
path('contact/', contact, name="contact"),
path('about/', about, name="about"),
path('terms-and-conditions/', terms, name="terms_and_conditions"),
path('privacy/', privacy, name="privacy"),
path('<str:title>/', article_details, name="article_details"),
]
我查看文件如下:
def article_details(request,title):
if 'title_in_model_A':
render 'some_page_A'
if 'title_in_model_B:
render 'some_page_B'
render(request,'app/404.html')
项目. urls文件:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('app.urls')),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
handler404 = 'app.views.view_404'
- 我的问题是**
1.这种类型的页面呈现是否良好?
- 404请求处理是否正确?
1条答案
按热度按时间j2cgzkjk1#
OP的方法是可以的,但是如果愿意,可以使用快捷方式
get_object_or_404
来简化article_details
视图,例如为了自定义404视图,可以使用use handlers。文档中有一个很好的例子。
很难说OP的渲染是否正确,因为这个问题没有显示OP有一个
view_404
在views.py
中的衣服应用程序。根据OP的新需求,如果有两个模型,并且希望检查是否存在标题与特定标题匹配的示例,那么OP可以使用
exists()
,如下所示注意,如果你不需要模型而只是检查模型的存在性,这个方法是很好的。如果你确实需要它,那么你可以在条件中包含以下内容(在渲染之前)