| @@ -167,6 +167,14 @@ class Document(BaseDocument): | |||||||
|             value._changed_fields = [] |             value._changed_fields = [] | ||||||
|         return value |         return value | ||||||
|  |  | ||||||
|  |     def to_dbref(self): | ||||||
|  |         """Returns an instance of :class:`~pymongo.dbref.DBRef` useful in | ||||||
|  |         `__raw__` queries.""" | ||||||
|  |         if not self.pk: | ||||||
|  |             msg = "Only saved documents can have a valid dbref" | ||||||
|  |             raise OperationError(msg) | ||||||
|  |         return pymongo.dbref.DBRef(self.__class__._meta['collection'], self.pk) | ||||||
|  |  | ||||||
|     @classmethod |     @classmethod | ||||||
|     def register_delete_rule(cls, document_cls, field_name, rule): |     def register_delete_rule(cls, document_cls, field_name, rule): | ||||||
|         """This method registers the delete rules to apply when removing this |         """This method registers the delete rules to apply when removing this | ||||||
|   | |||||||
| @@ -777,6 +777,14 @@ class DocumentTest(unittest.TestCase): | |||||||
|         self.assertEqual(person.name, "Test User") |         self.assertEqual(person.name, "Test User") | ||||||
|         self.assertEqual(person.age, 30) |         self.assertEqual(person.age, 30) | ||||||
|  |  | ||||||
|  |     def test_to_dbref(self): | ||||||
|  |         """Ensure that you can get a dbref of a document""" | ||||||
|  |         person = self.Person(name="Test User", age=30) | ||||||
|  |         self.assertRaises(OperationError, person.to_dbref) | ||||||
|  |         person.save() | ||||||
|  |  | ||||||
|  |         person.to_dbref() | ||||||
|  |  | ||||||
|     def test_reload(self): |     def test_reload(self): | ||||||
|         """Ensure that attributes may be reloaded. |         """Ensure that attributes may be reloaded. | ||||||
|         """ |         """ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user