close
The Wayback Machine - https://web.archive.org/web/20200921021327/https://github.com/nesdis/djongo/issues/470
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error on filtering EmbeddedField django.core.exceptions.ValidationError #470

Open
emanuelebosetti opened this issue Sep 16, 2020 · 0 comments
Open

Comments

@emanuelebosetti
Copy link

@emanuelebosetti emanuelebosetti commented Sep 16, 2020

One line description of the issue

Error on try to filter on Embedded object with Django 3.0.5 and djongo=1.3.3
I've this model:

Python script

class Company(models.Model):
    idrs = models.CharField(max_length=100)
    codicli = models.CharField(max_length=100)

    class Meta:
        abstract = True


class Survey(models.Model):
    _id = models.ObjectIdField()
    company = models.EmbeddedField(
        model_container=Company
    )
    create_timestamp = models.DateTimeField(auto_now=True)
    type = models.CharField(choices=SURVEY_TYPE, max_length=3)

When I try to filter on an EmbeddedField field like this:

class CustomerSurveyViewSet(SurveyViewSet):

    def get_queryset(self):
        qs = super().get_queryset().filter(company={'codicli': self.kwargs['codicli']})
        return qs

i get this exception:

Traceback

Traceback (most recent call last):
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\rest_framework\viewsets.py", line 114, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\rest_framework\views.py", line 505, in dispatch
response = self.handle_exception(exc)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\rest_framework\views.py", line 465, in handle_exception
self.raise_uncaught_exception(exc)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\rest_framework\views.py", line 476, in raise_uncaught_exception
raise exc
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\rest_framework\views.py", line 502, in dispatch
response = handler(request, *args, **kwargs)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\rest_framework\mixins.py", line 38, in list
queryset = self.filter_queryset(self.get_queryset())
File "C:\Users\bosettie\PycharmProjects\survey_importer\src\survey_receiver\views.py", line 45, in get_queryset
qs = super().get_queryset().filter(company={'codicli': self.kwargs['codicli']})
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\db\models\query.py", line 904, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\db\models\query.py", line 923, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\db\models\sql\query.py", line 1350, in add_q
clause, _ = self._add_q(q_object, self.used_aliases)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\db\models\sql\query.py", line 1381, in _add_q
check_filterable=check_filterable,
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\db\models\sql\query.py", line 1311, in build_filter
condition = self.build_lookup(lookups, col, value)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\db\models\sql\query.py", line 1165, in build_lookup
lookup = lookup_class(lhs, rhs)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\db\models\lookups.py", line 22, in init
self.rhs = self.get_prep_lookup()
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\django\db\models\lookups.py", line 72, in get_prep_lookup
return self.lhs.output_field.get_prep_value(self.rhs)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\djongo\models\fields.py", line 223, in get_prep_value
value)
File "C:\Users\bosettie\PycharmProjects\survey_importer\venv\lib\site-packages\djongo\models\fields.py", line 154, in _value_thru_fields
raise ValidationError(str(e))
django.core.exceptions.ValidationError: ['{'idrs': ['Value for field "survey_receiver.Company.idrs" not supplied']}']

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.