2009-05-29 5 views
0

Jahr_ID (2004 usw.) ist eine Dropdown-Box auf der Vorlage. Der Benutzer wählt ein Jahr aus und das wird in der Ansicht als year_id abgerufen. Ich muss Publikationen basierend auf Jahr aus einem Feld namens Grantstartdt im Format 2008-01-01 auswählen. Der Fehler ist:Django-Filterformat für das Datum

int() Argument ein String oder eine Zahl sein muss, nicht 'Jahr'

year_id = request.GET['year_id'] 
yr = get_object_or_404(Year, pk=year_id) 
projectyr=Researchproject.objects.exclude(activeyesno = 2).filter(grantstartdt__year=yr) 

Danke für jede Hilfe!

+0

Ist 'Grantstartdt' ein' CharField' oder was? Kannst du uns seine Definition zeigen? (Denken Sie daran, dass Sie Ihre Frage bearbeiten können, um weitere Informationen hinzuzufügen.) –

Antwort

0

Versuchen year_id statt yr in diesem filter() Anruf vorbei:

projectyr=Researchproject.objects.exclude(activeyesno = 2).filter(grantstartdt__year=year_id) 
0

Das ist, weil Sie auf das Jahr Objekt beziehen, statt des aktuellen Jahres. Angenommen, Ihr Year-Modell hat ein ganzzahliges Feld mit dem Namen xyz. Ihr Code sollte wie folgt aussehen.

year_id = request.GET['year_id'] 
yr = get_object_or_404(Year, pk=year_id) 
projectyr=Researchproject.objects.exclude(activeyesno = 2).filter(grantstartdt__year=yr.xyz) 
Verwandte Themen