Skip to content

Error for self reference #1

@arturboyun

Description

@arturboyun

Code

class User(Document):
    name = StringField(max_length=64, required=True)
    user_id = IntField(required=True)
    refer = ReferenceField('self')

    meta = {'collection': 'Users'}

Traceback when try to use:

(venv) D:\Developing\PyCharmProjects\try_mongo>python main.py
Traceback (most recent call last):
  File "main.py", line 35, in <module>
    loop.run_until_complete(operations())
  File "C:\Users\ruina\AppData\Local\Programs\Python\Python38-32\lib\asyncio\base_events.py", line 608, in run_until_complete
    return future.result()
  File "main.py", line 20, in operations
    first_user = await User(name='Archie Ruin', user_id=33212256, refer=None).save()
  File "D:\Developing\PyCharmProjects\try_mongo\venv\lib\site-packages\jetengine\document.py", line 110, in save
    return await self.objects.save(self, alias=alias, upsert=upsert)
  File "D:\Developing\PyCharmProjects\try_mongo\venv\lib\site-packages\jetengine\queryset.py", line 155, in save
    if self.validate_document(document):
  File "D:\Developing\PyCharmProjects\try_mongo\venv\lib\site-packages\jetengine\queryset.py", line 179, in validate_document
    return document.validate()
  File "D:\Developing\PyCharmProjects\try_mongo\venv\lib\site-packages\jetengine\document.py", line 92, in validate
    return self.validate_fields()
  File "D:\Developing\PyCharmProjects\try_mongo\venv\lib\site-packages\jetengine\document.py", line 101, in validate_fields
    if not field.validate(value):
  File "D:\Developing\PyCharmProjects\try_mongo\venv\lib\site-packages\jetengine\fields\reference_field.py", line 45, in validate
    if not isinstance(self.reference_type, type) or not issubclass(self.reference_type, Document):
  File "D:\Developing\PyCharmProjects\try_mongo\venv\lib\site-packages\jetengine\fields\reference_field.py", line 35, in reference_type
    self._resolved_reference_type = get_class(self._reference_document_type)
  File "D:\Developing\PyCharmProjects\try_mongo\venv\lib\site-packages\jetengine\utils.py", line 27, in get_class
    raise ImportError("Can't find class %s." % module_name)
ImportError: Can't find class self.```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions