[Series 1.DashBoard作成]-5ビューの作成(1)


[post]モデルのデータをクエリー!


前回のリリースではSuperUserが作成され、djangoプロジェクトのモデルに近づいてみました.
ただし、管理者権限でログインしていない場合は、モデル内のデータを表示できないため、すべての人に表示できない部分を改善する必要があります.
今日はこの問題をViewにして解決しましょう.djangoからViewは、クライアントから受け取った要求に従って、データベース・レイヤ(Model)に接続し、クエリー、変更、登録、削除に必要なデータを中継する役割を果たす.
簡単に言えば、サーバがデータを処理する로직部と言える.
DashBoardプロジェクトでは、ModelAdminしか生成されていないので、実際にデータを処理してクライアントに返す部分はないと考えられます.
今から本格的にViewを作りましょうvelog_series_01/dashboard/dashboard_core/views.pyをコードエディタとして開き、次のように記述します.
from rest_framework.viewsets import ModelViewSet
from rest_framework.permissions import IsAuthenticatedOrReadOnly
from dashboard_core.models import Post

# Create your views here.
class PostViewSet(ModelViewSet):
  queryset = Post.objects.all()
  permission_classes = [IsAuthenticatedOrReadOnly]
Postモデル専用ビューを作成するために、PostViewSetというPythonクラスのコードを定義します.
次に、ユーザーがアクセスするURLパターンを定義します.velog_series_01/dashboard/dashboard/urls.pyファイルをコードエディタとして開き、次のように記述します.
from django.contrib import admin
from django.urls import include, path
from rest_framework.routers import DefaultRouter
from dashboard_core.views import PostViewSet

router = DefaultRouter()
router.register(r"posts", PostViewSet, basename="post_status")

urlpatterns = [
    path('', include(router.urls)),
    path('admin/', admin.site.urls),
]
もともとはサーバーにアップロードした後、http://localhost:8000に入り、ロケットアニメーションを表示するindexページに直接入りましたが、私たちが作成したPostモデルのクエリーページ/postsに展示したいと思います.
ここまで来ると基本的な設定は終了です.djangoサーバをアップロードし、http://localhost:8000に接続してみます.

ルーティングの設定は次のようになります.
次に、次のプレゼンテーションでは、モデルデータを表示するページを作成します.
Thank you!