Pregunta

Aquí está mi patrón de URL:

news_info_month_dict = {
    'queryset': Entry.published.filter(is_published=True),
    'date_field': 'pub_date',
    'month_format': '%m',
}

y

(r'^(?P<category>[-\w]+)/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[-\w]+).html$', 
    'object_detail', news_info_month_dict, 'news_detail'),

Pero tienen un error le gusta esto:

object_detail() got an unexpected keyword argument 'category'

Por favor, ayúdame. Gracias!

¿Fue útil?

Solución

Creo que tendrá que escribir su propio punto de vista en lugar del object_detail genérico, algo como esto (no probado)

import datetime

def view_entry(request, category, year, month, day, slug):
    date = datetime.date(int(year), int(month), int(day))
    entry = get_object_or_404(Entry, slug=slug, date=date, is_published=True, category=category)
    return render_to_response('news_detail', {'object': entry})

A pesar de que puede ser posible hacerlo con object_detail No sé -. Muy rara vez utilizo vistas genéricas

Otros consejos

En su expresión regular URL, todo en <brackets> es conseguir pasar a la vista genérica como un argumento de palabra clave.

El problema es que la vista genérica que está usando (object_detail) no es compatible con todos los argumentos (a saber, category).

más información acerca de la vista genérica object_detail y los argumentos que acepta.

Si necesita un argumento category, simplemente envuelva la vista como Nick sugirió arriba y llamar a eso de tu URLconf.

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