def parse(cls, querydict):
        """ Parse querydict data.

        There are expected agruments:
            distinct, fields, filter, include, page, sort

        Parameters
        ----------
        querydict : django.http.request.QueryDict
            MultiValueDict with query arguments.

        Returns
        -------
        result : dict
            dictionary in format {key: value}.

        Raises
        ------
        ValueError
            If args consist of not know key.

        """
        for key in querydict.keys():
            if not any((key in JSONAPIQueryDict._fields,
                        cls.RE_FIELDS.match(key))):

                msg = "Query parameter {} is not known".format(key)
                raise ValueError(msg)

        result = JSONAPIQueryDict(
            distinct=cls.prepare_values(querydict.getlist('distinct')),
            fields=cls.parse_fields(querydict),
            filter=querydict.getlist('filter'),
            include=cls.prepare_values(querydict.getlist('include')),
            page=int(querydict.get('page')) if querydict.get('page') else None,
            sort=cls.prepare_values(querydict.getlist('sort'))
        )

        return result