大家好,最近怎么样?使用Django建立一个非常简单的网站:值得吗?
我刚刚开始使用Django,并且我已经开始了解我的头;我需要建立一个关于汽车的网站,主要有两个应用程序:
CarsCatalogue;
新闻组;
我发现我可以管理管理面板中的新闻非常有用的事实。我创建典型示范:
class Post(models.Model):
title = models.CharField(max_length = 140)
date = models.DateTimeField()
body = models.TextField()
def __str__(self):
return self.title
随着urls.py如下
url(r'^(?P<pk>\d+)$', DetailView.as_view(
model = Post,
template_name="news/post.html"))
url(r'^$', ListView.as_view(
queryset=Post.objects.all().order_by("-date")[:25],
template_name="news/news.html")),
这是伟大的!我可以从管理面板轻松管理新闻应用程序。现在我有一个每个新闻的页面:news/1;新闻/ 2等等;
但是,当我下载到CarsCatalogue,我真的需要简化我的生活,因为我有大量的汽车与个人页面,每个添加,我发现自己需要修改每个urls.py汽车我需要补充,似乎我必须修改每辆车的views.py - 我正在使用渲染 - 我是对的吗?
我的意思是,有一百个不同的函数调用一百页Views.py有意义吗? 然后,如果我想创建一个包含CarCatalogue的所有URL的列表,必须逐个写入每个链接? 这是在这种情况下使用Django的方式吗?
我会创造另一个“新闻式” APP的CarsCatalogue,这将是这么多容易让我通过管理面板来管理,但我需要每个URL来显示车的名称,如:CarsCatalogue/Seat-Ibiza并不像CarsCatalogue/1。
也许我可以做一些新闻应用程序,但改变网址生成和显示的方式?
我在阅读文档和一些Google主题和其他资源后询问了所有这些内容; 我希望你们能清除我头上的雾;
与所有这样的社会应有的尊重,
真诚,
-oKi
编辑N * 1
这是3个小时的阅读,尝试,修改,删除,再试一次。 我读了很多东西,但同时我得到了更多的困惑,因为我发现了很多东西,同时寻找如何“塞住”网址(这确实是我正在寻找的东西[现在我可以确实使用管理面板来做我想做的!]谢谢),我最终混合了很多东西。因此,使用新闻应用程序,是我迄今所做的:
python3.5 manage.py冲洗,makemigrations,迁移,createsuperuser
我修改的消息/模型。PY,所以它现在看起来是这样的:
from django.db import models
from django.template.defaultfilters import slugify
class Post(models.Model):
title = models.CharField(max_length = 140)
date = models.DateTimeField()
body = models.TextField()
slug = models.SlugField(title, max_length=100, unique=True)
def __str__(self):
return self.title
def slug(self):
return slugify(self.title)
我修改的消息/ admin.py,所以它现在看起来是这样的:
from django.contrib import admin
from news.models import Post
admin.site.register(Post)
class NewsAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": (Post.slug)} <!-- that seems makes sense looking at the Model - I also tryed {"slug": (title,)}, {"slug": (Post.title)}-->
我修改的消息/ urls.py,所以,它现在看起来是这样的:
from django.conf.urls import url
from django.views.generic import ListView, DetailView
from news.models import Post
urlpatterns = [
url(r'^$', ListView.as_view(
queryset=Post.objects.all().order_by("-date")[:25],
template_name="news/news.html")),
url(r'^(?P<slug>[\w-]+)$', DetailView.as_view(
model = Post,
template_name="news/post.html")),
]
那我就给: python3.5 manage.py runserver命令 并没有问题运行。 所以我去/管理员,我创建一个新的职位,它创建它... 但那么会发生什么? 它仍然使用旧的“范式”来生成url,包括它在使用客户端之前使用的旧密钥(id's)......所以...我期望成为mysite/news/new-human -level-urld-news 原来是mysite/news/11。
LOL:d和,幸运的是,浏览器给了我也是一个错误...
“FieldError在/新闻/ 11 无法解析关键字‘塞’到现场的选择是:身体,日期,身份证,标题为”
此刻我无法找到答案,我觉得这么多的东西,我只是不知道如何混为一谈。我会继续搜索。帮助表示赞赏!现在感谢! :d
你需要给多一点信息。你当然不应该需要100个网址 - 你需要在每个车页上改变什么? –
嗨丹尼尔,谢谢你的答案!我正在使用Jinja扩展我的标题,所以不是我从头开始创建所有页面; 根据模型,每个车页都会有几张照片/幻灯片,来自YouTube的视频,段落文本以及更多个性化内容。 谢谢! –
我需要它,以便我可以发布社交等“人性化”链接,如“website.car/CarsCatalogue/aston-martin-db”! 我有一个模板/ CarsCatalogue文件夹,我想我需要在urls.py中定义,并通过views.py进行渲染。 或者我猜! :O 再次感谢。 –