2017-11-06 2 views
0

In meinem (Post) Modell habe ichDjango Abfrage mit Datumzeit flter

published = models.DateField(null=True) 

Mein Urls Jahr/Monat/Tag zB

/post/category-1/2017/11/06/some-post/ 

enthalten, die ich durch kwargs in meine Urls bin einzufangen. py

meiner Ansicht nach meiner Anfrage ist

model = Post.objects.get(slug=kwargs['slug'],published__year=kwargs['year'], 
published__month=kwargs['month'],published__day=kwargs['day']) 

Dies funktioniert jedoch nicht. Das einzige Datumselement, das funktioniert, ist das Jahr. Ich habe hier einige Posts gelesen, in denen es darum geht, USE_TZ in settings.py zu deaktivieren, was natürlich keine Lösung ist.

Ich habe versucht, ein DateTime-Feld auch verwenden, aber das macht keinen Unterschied.

Jede Hilfe sehr geschätzt.

+0

können Sie Mysql Zeitzone geladen werden https://dev.mysql.com/doc/refman/5.7/en/mysql-tzinfo-to-sql.html – Robert

+1

Können Sie die Post relevantes Muster von urls.py? – kristaps

+0

"Nicht funktioniert" wie? Was geschieht? –

Antwort

0

Werfen Sie einen Blick auf:

import datetime 
sDate = '2017/11/06' 
dtDate = datetime.datetime.strptime(sDate, "%Y/%m/%d") 
models = Post.objects.filter(slug=kwargs['slug'],published=dtDate) 

Aber das bedeutet, dass Sie den richtigen Wert in sDate haben. So wie Kristab angefordert pls post Ihre URL-Muster

+0

Hallo, ich habe das getan und st ill erhalten den Fehler "existiert nicht .. Post-Matching-Abfrage existiert nicht" – Newfoundland

+0

haben Sie gekreuzt überprüft, dass die erwarteten Daten in der Datenbank sind? – mbieren

+0

Hallo, ja, wir haben ein Datumsfeld für diesen Beitrag, das das erwartete Ergebnis z. B. 2017-11-06 ergeben sollte. Ich denke, das Problem sind die mysql-Zeitzonen, die ich untersuchen muss (werde zurückkommen) – Newfoundland