Tôi có một mô hình:Django ép buộc sang Unicode: cần chuỗi hoặc đệm, datetime.date tìm thấy
class MyModel(models.Model):
id = models.IntegerField(primary_key=True)
recorded_on = models.DateField()
precipitation = models.FloatField(null=True, blank=True)
trong quan điểm của tôi, tôi có một câu hỏi như sau:
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)))
...
Nhưng bất cứ khi nào tôi cố gắng và làm bất cứ điều gì với queryset (ví dụ như json dump, hiển thị trong mẫu), tôi nhận được các lỗi sau đây:
coercing to Unicode: need string or buffer, datetime.date found
Tôi biết phải có một cách dễ dàng để dea l với điều này, nhưng tôi chưa tìm thấy nó.
Mọi trợ giúp sẽ được đánh giá cao.
EDIT:
Một ví dụ về dữ liệu:
+----+-------------+---------------+
| id | recorded_on | precipitation |
+----+-------------+---------------+
| 24 | 1987-07-02 | 20.7 |
| 33 | 1987-07-11 | 0.4 |
+----+-------------+---------------+
Vui lòng hiển thị truy nguyên thực tế. Dòng nào gây ra lỗi? –
là bạn bởi bất kỳ thay đổi cố gắng để nối 'record_on' với chuỗi unicode sử dụng toán tử' + '? Nếu vậy, cách để làm điều đó là 'u 'một chuỗi" + str (obj.recorded_on) ' – vartec
Traceback của tôi hơi khác so với bài viết, vì tôi đã đơn giản hóa nó - tôi nghi ngờ đây là một vấn đề chung. Nhưng dòng mã của tôi mà django phàn nàn là dòng views.py hiển thị mẫu. Liên kết ở đây: http://dpaste.com/722851/. Tôi cũng đã thử truy vấn trong trình bao và chỉ cố gắng in hoặc lặp lại queryset cho cùng một lỗi. –