Python 过滤Queryset并在Django中设计正确的URL.py和模板

Python 过滤Queryset并在Django中设计正确的URL.py和模板,python,html,django,models,Python,Html,Django,Models,我正在设计一个视频渲染儿童网站 该应用程序有家长类别,例如:卡通,教育节目等。每个类别有多个帖子,如丛林书,鸭子故事等卡通 每篇文章都有多集 我正在使用通用视图(listview、Detailview)作为视图 这是我的型号。py from django.db import models from personal.models import Post class cartoons_post(models.Model): category= models.ForeignKey(P

我正在设计一个视频渲染儿童网站

  • 该应用程序有家长类别,例如:卡通,教育节目等。每个类别有多个帖子,如丛林书,鸭子故事等卡通
  • 每篇文章都有多集
  • 我正在使用通用视图(listview、Detailview)作为视图
这是我的型号。py

from django.db import models
from personal.models import Post


class cartoons_post(models.Model):
    category= models.ForeignKey(Post, on_delete=models.CASCADE)
    title = models.CharField(max_length = 140)
    thumbnail=models.ImageField()
    date=models.DateField()


    def __unicode__(self):
        return self.title

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("posts:detail", kwargs={"id": self.id})


class post_episode(models.Model):
    post_id= models.ForeignKey(cartoons_post, on_delete=models.CASCADE)
    title = models.CharField(max_length = 140)
    thumbnail=models.ImageField()
    date=models.DateField()
    video=models.FileField()


    def __unicode__(self):
        return self.title

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("posts:detail", kwargs={"id": self.id})
from django.conf.urls import url, include
from django.views.generic import ListView, DetailView
from cartoons.models import cartoons_post,post_episode
from django.contrib.auth.decorators import login_required

urlpatterns = [ 

                url(r'^$', login_required(ListView.as_view(
                                queryset=cartoons_post.objects.all().order_by("-date")[:10],
                                template_name="cartoons/cartoons.html"))),
                url(r'^(?P<pk>\d+)$', login_required(ListView.as_view(
                                queryset=post_episode.objects.filter(post_id=1).order_by("-date"),
                                template_name="cartoons/post.html"))),
                url(r'^(?P<pk>\d+\d+)$',login_required(DetailView.as_view(
                                    model = post_episode,
                                    template_name="cartoons/post_episode.html"))),
            ]
这是我的url.py

from django.db import models
from personal.models import Post


class cartoons_post(models.Model):
    category= models.ForeignKey(Post, on_delete=models.CASCADE)
    title = models.CharField(max_length = 140)
    thumbnail=models.ImageField()
    date=models.DateField()


    def __unicode__(self):
        return self.title

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("posts:detail", kwargs={"id": self.id})


class post_episode(models.Model):
    post_id= models.ForeignKey(cartoons_post, on_delete=models.CASCADE)
    title = models.CharField(max_length = 140)
    thumbnail=models.ImageField()
    date=models.DateField()
    video=models.FileField()


    def __unicode__(self):
        return self.title

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("posts:detail", kwargs={"id": self.id})
from django.conf.urls import url, include
from django.views.generic import ListView, DetailView
from cartoons.models import cartoons_post,post_episode
from django.contrib.auth.decorators import login_required

urlpatterns = [ 

                url(r'^$', login_required(ListView.as_view(
                                queryset=cartoons_post.objects.all().order_by("-date")[:10],
                                template_name="cartoons/cartoons.html"))),
                url(r'^(?P<pk>\d+)$', login_required(ListView.as_view(
                                queryset=post_episode.objects.filter(post_id=1).order_by("-date"),
                                template_name="cartoons/post.html"))),
                url(r'^(?P<pk>\d+\d+)$',login_required(DetailView.as_view(
                                    model = post_episode,
                                    template_name="cartoons/post_episode.html"))),
            ]
从django.conf.url导入url,包括
从django.views.generic导入ListView,DetailView
从cartons.models导入卡通
从django.contrib.auth.decorators导入所需的登录名
urlpatterns=[
url(r'^$',需要登录(ListView.as\u视图(
queryset=cartons\u post.objects.all().order\u by(“-date”)[:10],
template_name=“cartoons/cartoons.html”),
url(r'^(?P\d+)$),需要登录(ListView.as\u视图(
queryset=post\u插曲.objects.filter(post\u id=1).order\u by(“-date”),
template_name=“cartoons/post.html”),
url(r'^(?P\d+\d+$),需要登录(DetailView.as\u视图(
模型=后一集,
template_name=“cartons/post_eposion.html”),
]
这是我的三个模板

cartoons.html

{%extends“personal/header.html”%}
{%load staticfiles%}
{%block content%}
{对象列表%中的卡通发布百分比}
{%endfor%}

{%EntBule%} <代码> > P>您应该考虑创建<代码>视图.Py < /C>文件,而不是在URLS.PY中使用泛型视图。我认为问题在于下面这句话

url(r'^(?P<pk>\d+)$',login_required(ListView.as_view(queryset=post_episode.objects.filter(post_id=1).order_by("-date"),template_name="cartoons/post.html"))),
然后将url路由到该视图:

from <yourapp.views> import EpisodeListView
from django.contrib.auth.decorators import login_required
url(r'^episodes/(?P<pk>\d+)$',login_required(EpisodeListView.as_view())
从导入EpiodeListView
从django.contrib.auth.decorators导入所需的登录名
url(r'^scents/(?P\d+)$),需要登录(eposodelistView.as\u view())

您应该使用@python\u 2\u unicode\u compitable,而不是自定义unicode和str