我用Django制作了两个应用程序。第一个叫做“产品”,第二个叫做“博客”。我做了第一个,一切正常工作,但当我添加第二个,两者都没有工作
urls.py
path('products/', include('products.urls')),
path('blog/', include('blog.urls')),blog\urls.py
app_name = 'articles'
urlpatterns = [
path('<int:id>/', article_detail_view, name='article_detail'), ]products\urls.py
app_name = 'products'
urlpatterns = [
path('<int:id>/', product_detail_view, name='product_detail'), ]关于代码的更多详细信息: src>博客:{ templates >文章> article_create.html和article_detail.html和article_list.html、窗体、模型、urls、视图}、产品{模板>产品> product_create.html和product_detail.html和product_list.html、窗体、模型、urls、视图}
article_create.html和product_create.html包含相同的代码:
{% extends 'base.html' %}
{% block content %}
<form method="post"> {% csrf_token %}
{{ form.as_p }}
<input type="submit" , value="Save">
</form>
{% endblock %}blog\模型:
from django.db import models
from django.urls import reverse
class Article(models.Model) :
title = models.CharField(max_length=130)
content = models.TextField(blank=True, null=True)
active= models.BooleanField(default=True)
def get_absolute_url(self):
return reverse("articles : article_detail",kwargs={"id":self.id})blog\urls:
from django.contrib import admin
from django.urls import path
from blog.views import (
article_detail_view,
article_create_view,
article_list_view,
)
app_name = 'blog'
urlpatterns = [
path('<int:id>/', article_detail_view, name='article_detail'),
path('create/', article_create_view, name='article_create'),
path('', article_list_view, name='article_list'),
]博客\视图:
from django.shortcuts import render , get_object_or_404 , redirect
from django.views.generic import CreateView , DeleteView , DetailView , ListView ,
UpdateView
from .models import Article
from .forms import ArticleForm
def article_detail_view(request,id):
obj=get_object_or_404(Article,id=id)
context = {
'object' : obj
}
return render( request , "articles/article_detail.html" , context )
def article_create_view(request):
form=ArticleForm(request.POST or None)
if form.is_valid():
form.save()
form = ArticleForm()
context = {
'form' : form
}
return render( request , "articles/article_create.html" , context )
def article_list_view(request):
queryset = Article.objects.all() #list of objects
context = {
'object_list' : queryset
}
return render( request , "articles/article_list.html" , context )INSTALLED_APPS包含“产品”和“博客”
我为产品文件(products\urls和products.)放置了相同的代码,当然还有更改。
我希望我现在就为你说清楚。
发布于 2019-02-17 23:16:24
原因是,对于app products,您的名称空间默认为“products”,但是对于应用程序blog,您使用的是将应用程序指定为“文章”。
app_name应该是应用程序的实际名称。
app_name = 'blog'
urlpatterns = [
path('<int:id>/', article_detail_view, name='article_detail'), ]https://stackoverflow.com/questions/54737397
复制相似问题