영문으로 된 질문은 Foreign key field value instead of id without nesting schemas? 즉, Schema 만들때 외부키로 연결된 모델의 필드 값을 같이 볼 수 있도록 하는 방법, 그러나 nesting 되기를 원하지 않는다. 그냥 쉽게 하면 nesting으로 되기 때문에 중괄호 안에 또 중괄호가 생겨서 그 값을 가져와야 한다. 그냥 장고 템플릿에서 하는 것 처럼 "외부키__필드명" 이런형태로 막 가져오면 좋으련만 그르케 되지 않네 참고로, nesting 된다는 의미는 아래 결과 값을 참고하면 금방 알 수 있다. dep 밑에 dep 필드 가져오려면 복잡해 지제 { id: 1000, name: 'Some name', dep: { dep: 'Some Text' } }..
Django admin에 어렵게 model을 등록해 두었는데, 관리자가 들어가서 자료를 볼때 object(id) 이런식으로 나오니깐 클릭해서 들어가기 전에 이 객체의 정보의 힌트를 볼 수 없어 답답했다. 이를 해결해 보자 아래 그림을 보자. Company Object(id) 이렇게 나오니, 실제 어떤 값이 들어 있는지는 클릭해서 들어가서 자세한 필드 내용을 봐야 안다. 여기 리스트에서 그냥 대충이라도 보고 싶은 욕구가~~~ 아주 쉽게 해결이 되었다. models.py에 선언하면서 __str__(self) 함수를 등록해 두면 되는 것이다. class Company(TimeStampedModel): name = models.CharField(max_length=255) is_deleted = models.I..
Django ninja api 를 쓰려고 하면 항상 Querystring 으로 받아야할 경우가 많이 있다. 매번 따로 정의해서 쓰는 것 보다 공통적인 것은 Schema로 정의해서 쓰고 싶은데, 어떤 때는 값이 있을 때도 있고, 없을 때도 있으니 이 경우를 다 처리하는게 복잡해 보였는데 Schema 와 ninja.Query() 함수로 좀 쉽게 구현해 보자. Django-ninja 공식 사이트에는 이와 관련된 아래와 같은 튜토리얼이 있다. 이를 잘 이해하면 끝! https://django-ninja.rest-framework.com/tutorial/query-params/#using-schema You can also use Schema to encapsulate GET parameters: import d..
장고 ninja api 로 리턴을 해주는 api 작성시에 페이지 정보와 전체 카운터, 이전페이지 다음페이지 유무등의 정보를 넣은 객체가 리턴되었으면 한다. 이때 편하게 할 수 있도록 Schema 상속을 통해 이를 해결해 보자. 매번 Schema 를 작성해야 하는데 공통 분모가 되는 필드들이 많이 있다. 이때 마다 매번 같은 내용을 작성하기 귀찮은데 클래스 추상화로 이를 해결할 수 있다. 그냥 코드를 보자. 페이지 정보와 해당 객체들의 리스트가 포함된 Schema 를 아래와 같이 정의해 본다. 각각 results 에 들어가는 객체들은 매번 바뀌니깐 공통 분모만 PaginatedOutSchema 로 정의해 두고 상속해서 사용하도록 한다. class PaginatedOutSchema(Schema): total..
Django에서 ninja api를 정의하여 호출하는 경우, 데이터베이스의 중복이나 불일치 등등 DB와 연동하여 판단하는 것 말고 폼 객체에 필드 값이 일단 사전에 올바른지 간단하게 체크하는 것이 필요하다. 보통 이런경우 api에서 처리해도 되지만 Schma를 정의해서 처리하는 방법이 있다. 자체 공부용으로 정리하는 것이므로 두서 없어도 그냥 넘어가주세요. 여기서 정리한 모든 내용은 현재 듣고 있는 장고 강의에 소스에 포함된 내용을 공부할 겸 추려본다 - Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) ninja api 구현 함수에 보면 아래와 같이 되어 있다. @api_router.post("register", response={201: None, 409: Mess..