Pergunta

Aqui está o meu padrão de URL:

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

e

(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'),

Mas eles têm um erro gosta deste:

object_detail() got an unexpected keyword argument 'category'

Por favor me ajude. Obrigado!

Foi útil?

Solução

Eu acho que você tem que escrever o seu próprio ponto de vista em lugar do object_detail genérica, algo como isto (não testado)

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})

Embora possa ser possível fazê-lo com object_detail Eu não sei -. I muito raramente usar views genéricas

Outras dicas

Em seu regex URL, tudo em <brackets> está sendo passado para a visão genérica como um argumento de palavra-chave.

O problema é que o ponto de vista genérico que você está usando (object_detail) não suporta todos esses argumentos (ou seja, category).

mais informações sobre o ponto de vista genérico object_detail e os argumentos que aceita.

Se você precisa de um argumento category, só embrulhar a vista como Nick sugerido acima e chamada que de seu URLconf.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top