(self, value)
| 2482 | return super().__get__(instance, owner) |
| 2483 | |
| 2484 | def to_mongo(self, value): |
| 2485 | if isinstance(value, LazyReference): |
| 2486 | pk = value.pk |
| 2487 | elif isinstance(value, self.document_type): |
| 2488 | pk = value.pk |
| 2489 | elif isinstance(value, DBRef): |
| 2490 | pk = value.id |
| 2491 | else: |
| 2492 | # value is the primary key of the referenced document |
| 2493 | pk = value |
| 2494 | id_field_name = self.document_type._meta["id_field"] |
| 2495 | id_field = self.document_type._fields[id_field_name] |
| 2496 | pk = id_field.to_mongo(pk) |
| 2497 | if self.dbref: |
| 2498 | return DBRef(self.document_type._get_collection_name(), pk) |
| 2499 | else: |
| 2500 | return pk |
| 2501 | |
| 2502 | def to_python(self, value): |
| 2503 | """Convert a MongoDB-compatible type to a Python type.""" |
no test coverage detected