Domanda

Qui è il mio modello di 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'),

Ma hanno un errore piace questo:

object_detail() got an unexpected keyword argument 'category'

Si prega di aiutarmi. Grazie!

È stato utile?

Soluzione

Credo che si dovrà scrivere il proprio punto di vista al posto del object_detail generica, qualcosa di simile (non testato)

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

Anche se può essere possibile farlo con object_detail Non lo so -. Sono molto uso raramente viste generiche

Altri suggerimenti

Nel vostro regex URL, tutto in <brackets> è sempre passato alla vista generico come un argomento chiave.

Il problema è che la vista generica che si sta utilizzando (object_detail) non supporta tutti questi argomenti (vale a dire, category).

maggiori informazioni sulla vista generica object_detail e gli argomenti che accetta.

Se avete bisogno di un argomento category, basta avvolgere la vista come Nick ha suggerito sopra e chiamare che dal vostro URLconf.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top