Pregunta

Mis modelos:

Historia:

categories = models.ManyToManyField(Category)

Categoría: nombre | babosa

Mis URL:

(r'^(?P<cat_slug>.*)/

Y en vistas , uso:

def archive_category(request, cat_slug):
    entry = News.objects.get( categories__slug=cat_slug )
    return render_to_response('news_archive_category.html', {'entry':entry, })

Tiene algo de malo si tengo una historia de dos o más categorías. Por favor, ayúdame. Muchas gracias!

, 'news.views.archive_category'),

Y en vistas , uso:

<*>

Tiene algo de malo si tengo una historia de dos o más categorías. Por favor, ayúdame. Muchas gracias!

¿Fue útil?

Solución

category = Category.objects.filter(slug=cat_slug)#get the category requested
#now get all the entries which have that category
entries = News.objects.filter(categories__in=category)#because of the many2many use __in

editado después del comentario

Otros consejos

¿Qué quieres que pase en estas circunstancias? ¿Estás tratando de mostrar una lista de todas las entradas en una categoría, o solo una?

News.objects.get () siempre obtendrá un solo elemento o generará una excepción si hay más de uno que coincida con los criterios. En su lugar, debe usar filter () , pasando un QuerySet a la plantilla, por lo que deberá iterar; o bien, agregue un criterio a su urlconf para que también obtenga la ficha de entrada específica, de modo que solo obtenga un objeto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top