diff --git a/content/__pycache__/serializers.cpython-313.pyc b/content/__pycache__/serializers.cpython-313.pyc new file mode 100644 index 0000000..761b195 Binary files /dev/null and b/content/__pycache__/serializers.cpython-313.pyc differ diff --git a/content/__pycache__/urls.cpython-313.pyc b/content/__pycache__/urls.cpython-313.pyc new file mode 100644 index 0000000..4818426 Binary files /dev/null and b/content/__pycache__/urls.cpython-313.pyc differ diff --git a/content/__pycache__/views.cpython-313.pyc b/content/__pycache__/views.cpython-313.pyc new file mode 100644 index 0000000..2f0f093 Binary files /dev/null and b/content/__pycache__/views.cpython-313.pyc differ diff --git a/content/serializers.py b/content/serializers.py new file mode 100644 index 0000000..bff73c0 --- /dev/null +++ b/content/serializers.py @@ -0,0 +1,14 @@ +from rest_framework import serializers +from .models import Product, ContactMessage + + +class ProductSerializer(serializers.ModelSerializer): + class Meta: + model = Product + fields = "__all__" + + +class ContactSerializer(serializers.ModelSerializer): + class Meta: + model = ContactMessage + fields = "__all__" diff --git a/content/urls.py b/content/urls.py new file mode 100644 index 0000000..c24c812 --- /dev/null +++ b/content/urls.py @@ -0,0 +1,7 @@ +from django.urls import path +from .views import get_products, create_contact + +urlpatterns = [ + path('products/', get_products), # GET + path('contact/', create_contact), # POST +] diff --git a/content/views.py b/content/views.py index 91ea44a..60ea795 100644 --- a/content/views.py +++ b/content/views.py @@ -1,3 +1,25 @@ -from django.shortcuts import render +from rest_framework.decorators import api_view +from rest_framework.response import Response +from rest_framework import status -# Create your views here. +from .models import Product, ContactMessage +from .serializers import ProductSerializer, ContactSerializer + + +# --- GET ALL PRODUCTS --- +@api_view(['GET']) +def get_products(request): + products = Product.objects.all() + serializer = ProductSerializer(products, many=True) + return Response(serializer.data, status=status.HTTP_200_OK) + + +# --- POST CONTACT FORM --- +@api_view(['POST']) +def create_contact(request): + serializer = ContactSerializer(data=request.data) + if serializer.is_valid(): + serializer.save() # DB ga saqlanadi + return Response({"success": True}, status=status.HTTP_201_CREATED) + + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) diff --git a/portfolio_admin/__pycache__/settings.cpython-313.pyc b/portfolio_admin/__pycache__/settings.cpython-313.pyc index d6fdce1..051d24e 100644 Binary files a/portfolio_admin/__pycache__/settings.cpython-313.pyc and b/portfolio_admin/__pycache__/settings.cpython-313.pyc differ diff --git a/portfolio_admin/__pycache__/urls.cpython-313.pyc b/portfolio_admin/__pycache__/urls.cpython-313.pyc index 32f5cb7..036584b 100644 Binary files a/portfolio_admin/__pycache__/urls.cpython-313.pyc and b/portfolio_admin/__pycache__/urls.cpython-313.pyc differ diff --git a/portfolio_admin/settings.py b/portfolio_admin/settings.py index 00bb0a0..9f8c871 100644 --- a/portfolio_admin/settings.py +++ b/portfolio_admin/settings.py @@ -38,6 +38,7 @@ INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', + 'rest_framework', 'content', ] diff --git a/portfolio_admin/urls.py b/portfolio_admin/urls.py index f192e5e..0c922cd 100644 --- a/portfolio_admin/urls.py +++ b/portfolio_admin/urls.py @@ -1,22 +1,5 @@ -""" -URL configuration for portfolio_admin project. - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/5.2/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: path('', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.urls import include, path - 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) -""" -from django.contrib import admin -from django.urls import path +from django.urls import path, include urlpatterns = [ - path('admin/', admin.site.urls), + path('api/', include('content.urls')), ]