| 1 |
Index: django/core/serializers/pyyaml.py |
|---|
| 2 |
=================================================================== |
|---|
| 3 |
--- django/core/serializers/pyyaml.py (revision 6021) |
|---|
| 4 |
+++ django/core/serializers/pyyaml.py (working copy) |
|---|
| 5 |
@@ -20,8 +20,14 @@ |
|---|
| 6 |
def end_serialization(self): |
|---|
| 7 |
self.options.pop('stream', None) |
|---|
| 8 |
self.options.pop('fields', None) |
|---|
| 9 |
- yaml.dump(self.objects, self.stream, **self.options) |
|---|
| 10 |
+ if self.options.has_key("safe_dump") and \ |
|---|
| 11 |
+ self.options.pop("safe_dump") == True: |
|---|
| 12 |
+ yaml.safe_dump(self.objects, self.stream, **self.options) |
|---|
| 13 |
+ else: |
|---|
| 14 |
+ self.options.pop('safe_dump', None) |
|---|
| 15 |
+ yaml.dump(self.objects, self.stream, **self.options) |
|---|
| 16 |
|
|---|
| 17 |
+ |
|---|
| 18 |
def getvalue(self): |
|---|
| 19 |
return self.stream.getvalue() |
|---|
| 20 |
|
|---|
| 21 |
Index: docs/serialization.txt |
|---|
| 22 |
=================================================================== |
|---|
| 23 |
--- docs/serialization.txt (revision 6021) |
|---|
| 24 |
+++ docs/serialization.txt (working copy) |
|---|
| 25 |
@@ -135,6 +135,21 @@ |
|---|
| 26 |
json_serializer = serializers.get_serializer("json")() |
|---|
| 27 |
json_serializer.serialize(queryset, ensure_ascii=False, stream=response) |
|---|
| 28 |
|
|---|
| 29 |
+yaml |
|---|
| 30 |
+~~~~ |
|---|
| 31 |
+ |
|---|
| 32 |
+If want dump complex data that will be used by non python clients you |
|---|
| 33 |
+want to use ``safe_dump=True`` as a parameter to the ``serialize()`` |
|---|
| 34 |
+call. Otherwise UTF-8 strings will end up as type "!!python/unicode". |
|---|
| 35 |
+Using a large width solves problems with some parsers, too. |
|---|
| 36 |
+ |
|---|
| 37 |
+For example:: |
|---|
| 38 |
+ |
|---|
| 39 |
+ yaml_serializer = serializers.get_serializer("json")() |
|---|
| 40 |
+ yaml_serializer.serialize(queryset, safe_dump=True, |
|---|
| 41 |
+stream=response, width=9999999999) |
|---|
| 42 |
+ |
|---|
| 43 |
+ |
|---|
| 44 |
Writing custom serializers |
|---|
| 45 |
`````````````````````````` |
|---|
| 46 |
|
|---|