Don't know how to convert the Django field class 'djongo.models.fields.ArrayField'
from djongo.models import Model, CharField, ObjectIdField, IntegerField, ArrayField from django.forms import ModelForm
class Contact(Model): name = CharField(max_length=50) phone_number = IntegerField()
class Meta:
abstract = True
class ContactForm(ModelForm): class Meta: model = Contact fields = ("name", "phone_number")
class Organization(Model): _id = ObjectIdField() name = CharField(max_length=50, unique=True) desk_number = IntegerField() registered_address = CharField(max_length=256) communication_address = CharField(max_length=256) email_address = CharField(max_length=150) contacts = ArrayField(model_container=Contact, model_form_class=ContactForm, null=False) type = CharField(max_length=256) pan_number = CharField(max_length=15) gst_number = CharField(max_length=25) member_count = IntegerField() account_number = IntegerField() bank_name = CharField(70) ifsc_code = CharField(10) registration_year = CharField(4)
class Meta:
"""
to set table name in database
"""
db_table = "organization"
File "D:\miniconda\envs\deeplearning\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "D:\miniconda\envs\deeplearning\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\utils\autoreload.py", line 53, in wrapper
fn(*args, **kwargs)
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\core\management\commands\runserver.py", line 117, in inner_run
self.check(display_num_errors=True)
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\core\management\base.py", line 392, in check
all_issues = self._run_checks(
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\core\management\base.py", line 382, in run_checks
return checks.run_checks(**kwargs)
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks
new_errors = check(app_configs=app_configs)
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config
return check_resolver(resolver)
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver
return check_method()
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\urls\resolvers.py", line 407, in check
for pattern in self.url_patterns:
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\utils\functional.py", line 48, in get
res = instance.dict[self.name] = self.func(instance)
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\urls\resolvers.py", line 588, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\utils\functional.py", line 48, in get
res = instance.dict[self.name] = self.func(instance)
File "D:\miniconda\envs\deeplearning\lib\site-packages\django\urls\resolvers.py", line 581, in urlconf_module
return import_module(self.urlconf_name)
File "D:\miniconda\envs\deeplearning\lib\importlib_init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "
The workaround would be to register a custom handler: https://github.com/graphql-python/graphene-django/issues/18#issuecomment-253549577
But as this is now part of Django, it should be added.
The Django Postgres array field handler is already implemented.
The Mongodb arrayfield is not part of Django (it's in Djongo)... so I would say that implementing a custom handler is the solution (and honestly you can most likely use the same handler as the postgres arrayfield one)