AttributeError: object of type 'user' has no attribute 'name'
Freddie Martinez Garcia
I am new to graphene and I have this:
from django.contrib.auth.models import User
class UserType(DjangoObjectType):
class Meta:
model = User
Basically, using Django's User class gives me this error because before using the django User class I used my own User definition and it worked. Why does using the User class from the django authentication framework give me the error mentioned in the title:
File "/usr/local/lib/python3.6/site-packages/graphql/type/typemap.py" line 60 in reducer if type.name in map: AttributeError: type object 'User' has no property 'name''
Am I missing something?
greeting
PD: I'm using Django 2.0.4
Traceback
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x107c49e18>
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run
self.check(display_num_errors=True)
File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 364, in check
include_deployment_checks=include_deployment_checks,
File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 351, in _run_checks
return checks.run_checks(**kwargs)
File "/usr/local/lib/python3.6/site-packages/django/core/checks/registry.py", line 73, in run_checks
new_errors = check(app_configs=app_configs)
File "/usr/local/lib/python3.6/site-packages/django/core/checks/urls.py", line 13, in check_url_config
return check_resolver(resolver)
File "/usr/local/lib/python3.6/site-packages/django/core/checks/urls.py", line 23, in check_resolver
return check_method()
File "/usr/local/lib/python3.6/site-packages/django/urls/resolvers.py", line 397, in check
for pattern in self.url_patterns:
File "/usr/local/lib/python3.6/site-packages/django/utils/functional.py", line 36, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/usr/local/lib/python3.6/site-packages/django/urls/resolvers.py", line 536, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/local/lib/python3.6/site-packages/django/utils/functional.py", line 36, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/usr/local/lib/python3.6/site-packages/django/urls/resolvers.py", line 529, in urlconf_module
return import_module(self.urlconf_name)
File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/Users/freddy/PycharmProjects/DYD/DYD/urls.py", line 19, in <module>
from dyd_server.graphql import schema
File "/Users/freddy/PycharmProjects/DYD/dyd_server/graphql/__init__.py", line 10, in <module>
schema = graphene.Schema(query=RootQuery, mutation=Mutations)
File "/usr/local/lib/python3.6/site-packages/graphene/types/schema.py", line 57, in __init__
self.build_typemap()
File "/usr/local/lib/python3.6/site-packages/graphene/types/schema.py", line 123, in build_typemap
schema=self
File "/usr/local/lib/python3.6/site-packages/graphene/types/typemap.py", line 69, in __init__
super(TypeMap, self).__init__(types)
File "/usr/local/lib/python3.6/site-packages/graphql/type/typemap.py", line 16, in __init__
self.update(reduce(self.reducer, types, OrderedDict()))
File "/usr/local/lib/python3.6/site-packages/graphene/types/typemap.py", line 77, in reducer
return self.graphene_reducer(map, type)
File "/usr/local/lib/python3.6/site-packages/graphene/types/typemap.py", line 107, in graphene_reducer
return GraphQLTypeMap.reducer(map, internal_type)
File "/usr/local/lib/python3.6/site-packages/graphql/type/typemap.py", line 80, in reducer
field_map = type.fields
File "/usr/local/lib/python3.6/site-packages/graphql/pyutils/cached_property.py", line 16, in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File "/usr/local/lib/python3.6/site-packages/graphql/type/definition.py", line 180, in fields
return define_field_map(self, self._fields)
File "/usr/local/lib/python3.6/site-packages/graphql/type/definition.py", line 189, in define_field_map
field_map = field_map()
File "/usr/local/lib/python3.6/site-packages/graphene/types/typemap.py", line 250, in construct_fields_for_type
map = self.reducer(map, field.type)
File "/usr/local/lib/python3.6/site-packages/graphene/types/typemap.py", line 77, in reducer
return self.graphene_reducer(map, type)
File "/usr/local/lib/python3.6/site-packages/graphene/types/typemap.py", line 107, in graphene_reducer
return GraphQLTypeMap.reducer(map, internal_type)
File "/usr/local/lib/python3.6/site-packages/graphql/type/typemap.py", line 80, in reducer
field_map = type.fields
File "/usr/local/lib/python3.6/site-packages/graphql/pyutils/cached_property.py", line 16, in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File "/usr/local/lib/python3.6/site-packages/graphql/type/definition.py", line 180, in fields
return define_field_map(self, self._fields)
File "/usr/local/lib/python3.6/site-packages/graphql/type/definition.py", line 189, in define_field_map
field_map = field_map()
File "/usr/local/lib/python3.6/site-packages/graphene/types/typemap.py", line 250, in construct_fields_for_type
map = self.reducer(map, field.type)
File "/usr/local/lib/python3.6/site-packages/graphene/types/typemap.py", line 78, in reducer
return GraphQLTypeMap.reducer(map, type)
File "/usr/local/lib/python3.6/site-packages/graphql/type/typemap.py", line 60, in reducer
if type.name in map:
AttributeError: type object 'User' has no attribute 'name'
Mark Krellian
This error occurs when Django model classes are accidentally used in code instead of graphene type classes. For example, make sure your query is something like
user = graphene.Field(UserType)
replace
user = graphene.Field(User)