NavigationDuplicated 에러는 

Vue router를 사용할 때 생길 수 있는 에러이다.

 

해결법은

router.go(router.currentRoute);

를 통해 해결할 수 있다.

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration account.0001_initial is applied before its dependency users.0001_initial on database 'default'.

 

OperationalError: no such table: user_user

 

커스텀 유저를 처음 설정할 때 발생할 수 있는 에러로서

 

해결법은 

python manage.py migrate --run-syncdb

 

명령어를 통해 마이그레이션을 하지 않고 테이블만 생성하여 해결할 수 있다.

 

Navigation gaurd

routes: [
    {
        path: "/home",
        component: Home
        beforeEnter: (to, from, next) => {
            if (localStorage.getItem("key") == null) {
                return next({
                    path: "/login",
                    query: { redirect: to.fullPath }
                });
            }
            next();
        };
    }
]
  • 위 예시와 같이 네비게이션 가드를 통해 특정 라우팅에 대해 가드를 설정할 수 있다.
  • 쉽게 말해, 특정 컴포넌트로 이동하기 전에 조건 처리를 통해 로그인이 되었는지 등 검증 로직을 수행할 수 있는 방법이다.
class Task(APIView):
    def get(self, request):
        questions = Task.objects.filter(client=request.user)
        serializer = TaskSerializer(questions, many=True)
        return Response(serializer.data)

오타없이 제대로 작성한 것 같은데 위와 같은 에러가 뜬다면

위 예시처럼 views.py의 class명과 model 이름이 일치하기 때문에 발생하는 에러이다.

class명과 model name을 다르게 설정하면 제대로 동작한다.

models.py에서

user_foreign_key = models.ForeignKey("auth.User", on_delete=models.CASCADE, verbose_name="foreign_key")

위와 같이 user의 외부키 필드를 설정해놓고 

user_data = UserData.objects.get(data_foreign_key="something")

정작 views.py에서는 유저 모델의 일부 속성만으로 접근했을 때 뜨는 에러이다.

 

해결법은

위 model.objects.get으로 접근하기 전에 

user = User.objects.get(email=client_attribute)
user_data = UserData.objects.get(data_foreign_key=user)

위처럼 User.objects.get을 거쳐서 나온 객체를 비교값으로 넣어주면 제대로 작동된다.

pip install --upgrade --force-reinstall Django

위 커맨드로 쉽게 해결할 수 있는 에러이다.

 

이후

makemigrations 을 진행하면 된다.

+ Recent posts