Куда поместить код фреймворка Django rest в проекте Django?

Я хотел бы знать, куда/в какой файл я должен поместить набор DRF python кода в Django проекте. Вот почему/что происходит со мной сейчас.

Пока я пытаюсь перейти с базы данных sqlite по умолчанию на postgres, у меня возникла проблема;

$ IS_PRODUCTION=true python manage.py showmigrations

..
django.db.utils.ProgrammingError: relation "django_content_type" does not exist
LINE 1: ..."."app_label", "django_content_type"."model" FROM "django_co...

эта ошибка говорит мне relation "django_content_type" does not exist, поэтому я проверил трассировку стека в ошибке;

..
File "/root/pg/django/snippetapp/app/urls.py", line 623, in PostViewSet
      _content_type_id = ContentType.objects.get_for_model(Post).id
..

Похоже, что я получил ошибку, потому что у меня есть набор DRF скриптов на ./appname/urls.py, и я импортировал/использовал ContentType, один из основных классов Django в файле;

поскольку кажется, что Django загружает верхний urls.py файл на очень ранней стадии, а не занимается ContentType вещами.

Итак, я полагаю, что мне нужно переместить весь набор DRF, так куда же мне двигаться?

Но одно но, я полагаю, что мы urlpatterns include указываем урлы маршрутизаторов DRF как таковые:

router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
router.register(r'posts', PostViewSet)
..

urlpatterns = [
    path('api/', include(router.urls)),
    ..

Тогда не нужно ли нам также иметь DRF скрипты "перед" ./appname/urls.py -> urlpatterns...?

<

Спасибо.

Редактирование по требованию

Вот PostViewSet, который содержит в себе импортированный ContentType;

from django.contrib.contenttypes.models import ContentType

..

class PostViewSet(viewsets.ModelViewSet):
    """
    default Post viewset
    """
    _site_id = settings.SITE_ID
        # e.g. 3
    _content_type_id = ContentType.objects.get_for_model(Post).id 
        # e.g. 12

    comment_count = Comment.objects.filter(content_type_id=_content_type_id).filter(site_id=_site_id).filter(
        object_pk=OuterRef('pk')).order_by().annotate(
            count=Func(F('id'), function='COUNT')).values("count")

    comments = Comment.objects.filter(content_type_id=_content_type_id).filter(site_id=_site_id).filter(
        object_pk=OuterRef('pk'))
                
    queryset = Post.objects.all().annotate(
        vote_count=Count('voters'), 
        comment_count=Count('comments'),
        # gets the comment count
        comment02_count=Subquery(comment_count),
        # gets the last comment
        comment_last=Subquery(comments.order_by("-submit_date").values("comment")[:1]),
        ).all()
    
    serializer_class = PostSerializer
    permission_classes = [GeneralUserObjectPerm,]
    filter_backends = [filters.OrderingFilter, DynamicSearchFilter,]

    pagination_class = StandardResultsSetPagination
    

Вся дорожка стека в ошибке

Вернуться на верх