오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Web Programming/Django

[Django] Trouble Shooting

junha6316 2020. 12. 2. 16:18

 

1. The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS

한번에 보낼 수 있는 GET/POST 파라미터 개수가 셋팅해 놓은 값보다 많이 요청했음(default 1000개)

config->settings.py 으로 가서 아래 변수를 선언해준다.

DATA_UPLOAD_MAX_NUMBER_FIELDS = 4000

2. MultipleObjectsReturned at /main/ get() returned more than one Stations -- it returned more than 20!

modelClass.objects.get(id=id)와 같은 방식으로 쿼리셋을 날렸을 때 반환되는 클래스가 여러개일때 발생

get은 하나 filter는 여러개 반환될 때 사용하도록하자!


3. ValueError : the Field admin.LogEntry.user was declared with a lazy reference to 'users.users', but app 'users' isn't instatlled

user 모델관련 마이그레이션 문제 migrations 파일을 지워 주자 명령어는 아래 참고

cocook.tistory.com/64

 

[Django] 장고 migrations 오류 한번에 잡기

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete 마이그레이션 디렉토리 안에 모든 파일을 __init__.py 모듈 빼고 싹 지운다. 리눅스에서는 아래와 같은 명령어로 쉽게 지울 수 있다.

cocook.tistory.com

 

4. save() missing 1 required positional argument:'self' save() missing 1 required positional argument: 'self'

모델선언시 괄호를 치지 않음

from users.models import User

visitor = User
# visitor = User() 이런 식으로 선언해야한다.	

5.  [Django] Django channels cannot import name RequestAborted from exceptions

Django channels cannot import name RequestAborted from exception 또는 Python ImportError: cannot import name __version__

가상환경을 지웠다가 다시 만들어준다..

 

6. ImportError: cannot import name 'Participant' from partially initialized module 'participants.models' (most likely due to a circular import) (/Users/parkjunha/Projects/keystoneV1.0/participants/models.py)

 

서로 다른 app의 models 에서 각 models를 import 할 때 발생하는 문제로 내 경우에는 Foreignkey로 import할 때 발생했다.

이를 막기 위해선 Foreignkey 시 적어야 하는 모델을 스트링으로 적어주면 해결된다.

attendEvent = models.ForeignKey("registrations.Event", related_name="participants", on_delete=models.CASCADE)  

 

7. "django_content_type" already exists 에러 발생시

python manage.py migrate를 할 때 이미 존재하는 테이블을 생성하려고 할 때 발생하는 문제로 migrate 시 아래 조건을 줘서 해결해주도록 하자

python manage.py migrate --fake-initial

 

8. Django Redis Error unknown command 'BZPOPMIN'

레디스 버전문제로  BZPOPMIN and BZPOPMAX는 레디스 버전 5.0.0부터 가능하다. 만약 위의 에러가 뜬다면 레디스 버전을 업그레이드하거나 Django-channel 버전을 낮춰주도록 하자

 

9. form object has no attribute 'cleaned_data'

장고에 폼 사용시 종종 발생하는 문제로 cleaned_data가 무조건 있는데 이게 무슨소리요 장고 선생 이라고 생각할 수 있지만 cleaned_data는 form.is_valid()를 호출 한 뒤에 생성된다. 이부분을 확인하자 만약 이것도 했는데 여전히 오류가 발생한다면 form.is_valid로 적은건 아닌지 꺼진 불도 다시보자

 

10. OperationalError: cursor “_django_curs_<id>” does not exist

필드를 추가하거나 변경한 후에 마이그레이션을 하지 않고 접근했을 때 발생하는 문제, 수정사항이 있다면 마이그레이션 고고