Django coercition à Unicode: besoin de chaîne ou de tampon, datetime.date trouvé
J'ai un modèle:
class MyModel(models.Model):
id = models.IntegerField(primary_key=True)
recorded_on = models.DateField()
precipitation = models.FloatField(null=True, blank=True)
dans mes vues, j'ai une requête ainsi:
import datetime
def my_view(request):
...
format = '%Y-%m-%d'
sd = datetime.datetime.strptime(startdate, format)
ed = datetime.datetime.strptime(enddate, format)
queryset = MyModel.objects.filter((recorded_on__range = (sd, ed)))
...
Mais à chaque fois que j'essaye de faire quelque chose avec le queryset (par exemple, json de vidage, de l'affichage dans le modèle), j'obtiens l'erreur suivante:
coercing to Unicode: need string or buffer, datetime.date found
Je sais il doit y avoir un moyen facile de traiter avec cela, mais je n'ai pas encore trouvé.
Toute aide serait grandement appréciée.
EDIT:
Un exemple de données:
+----+-------------+---------------+
| id | recorded_on | precipitation |
+----+-------------+---------------+
| 24 | 1987-07-02 | 20.7 |
| 33 | 1987-07-11 | 0.4 |
+----+-------------+---------------+
source d'informationauteur Darwin Tech
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas le code complet, mais je soupçonne que le problème est avec votre modèle
__unicode__
méthode. Ce doit retourner une chaîne unicode réelle - si vous êtes juste fairereturn self.recorded_on
qui échoue avec l'erreur donné. Essayez quelque chose commereturn unicode(self.recorded_on)
ou de l'utilisationstrftime
pour convertir vos besoins de formatage de date, par exempleself.recorded_on.strftime('%Y-%m-%d')
.