본문 바로가기
개발/Django

[Django] Django 에러 핸들링

by 유다110 2019. 2. 12.
반응형

api.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'User.groups'.

HINT: Add or change a related_name argument to the definition for 'User.groups' or 'User.groups'.

api.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'User.user_permissions'.

HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'User.user_permissions'.


User 모델을 커스터마이징 했을 때 발생하는 에러.

settings.py에 다음을 추가해준다.

AUTH_USER_MODEL = '{app-name}.{User-model-name}'
AUTH_USER_MODEL = 'api.User'



django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: {app-name}


Django 1.7 이후 버전의 경우, INSTALLED_APPS에 있는 app의 이름을 지우면 된다.

1.7 이전까지는 settings.py의 INSTALLED_APPS에 app을 명시해줘야 했지만 그 이후 버전은 적지 않아도 된다.




django.template.exceptions.TemplateDoesNotExist: rest_framework/api.html


settings.py의 INSTALLED_APPS에 'rest_framework'가 있는지 확인하고 없으면 추가한다.




'TextSerializer' is not JSON serializable


Serializer에서 `SerializerMethodField`를 사용할 때, 

class SampleSerializer(serializers.ModelSerializer):
	text = serializers.SerializerMethodField()
	
	def get_text(self):
		text_qs = TextModel.objects.all()
		return TextSerializer(text_qs)

이 경우, 'TextSerializer' is not JSON serializable 에러가 난다. return 값이 serialize(직렬화)되지 않았기 때문이다. 따라서 get_text()의 return 값을 다음과 같이 고쳐준다.

def get_text(self):
	text_qs = TextModel.objects.all()
	return TextSerializer(text_qs).data


반응형

댓글