Je suis en train de concevoir un site web de rendu vidéo pour enfants.Filtrage de Queryset et conception d'urls.py et de templates corrects dans Django
- L'application a des parents catégories pour exemple: dessins animés, l'éducation montre etc. Chaque catégorie a plusieurs messages tels que Jungle_book, Duck_tales etc pour les dessins animés.
- Chaque poste a plusieurs épisodes.
- J'utilise des vues génériques (listview, Detailview) pour les vues.
Voici mon Models.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})
Voici mon urls.py
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"))),
]
Voici mes trois modèles
cartoons.html
{% extends "personal/header.html" %}
{% load staticfiles %}
{% block content %}
{% for cartoons_post in object_list %} \t
\t <a href="/cartoons/{{cartoons_post.id}}"> <img src= "{{cartoons_post.thumbnail.url}}" width="200" height="220"> </a>
{% endfor %}
{% endblock %}
post.html
{% extends "personal/header.html" %}
{% load staticfiles %}
{% block content %}
{% for post_episode in object_list %} \t
\t <a href="/cartoons/{{post_episode.id}}"> <img src= "{{post_episode.thumbnail.url}}" width="200" height="220"> </a>
{% endfor %} \t
{% endblock %}
post_episode.html
{% extends "personal/header.html" %}
{% load staticfiles %}
{% block content %}
\t <div class="container-fluid_cartoons">
\t <h3>{{post_episode.title}}</h3>
\t <video width="850" height="500" controls>
\t <source src="{{post_episdoe.video.url}}" type="video/mp4">
\t Your browser does not support the video tag.
\t </video>
\t </div> \t
{% endblock %}
Questions - Seulement cartoons.html fonctionne très bien.
Une fois que je clique sur un poste individuel de la post.html pertinente montre tout l'épisode téléchargé plutôt que les épisodes se rapportant à personne uniquement après.
Une fois que je clique sur un épisode, rien ne se passe.
Vous devez utiliser @ python_2_unicode_compitable plutôt que sur mesure à la fois __unicode__ et __str__ – williezh
Merci @ williezh –