From 9d9d5f241c650a93635dde7677ddbcc64af2d2e9 Mon Sep 17 00:00:00 2001 From: "nabijonovdavronbek619@gmail.com" Date: Tue, 2 Dec 2025 20:35:46 +0500 Subject: [PATCH] api links --- .../__pycache__/serializers.cpython-313.pyc | Bin 0 -> 1222 bytes content/__pycache__/urls.cpython-313.pyc | Bin 0 -> 379 bytes content/__pycache__/views.cpython-313.pyc | Bin 0 -> 1521 bytes content/serializers.py | 14 ++++++++++ content/urls.py | 7 +++++ content/views.py | 26 ++++++++++++++++-- .../__pycache__/settings.cpython-313.pyc | Bin 2544 -> 2560 bytes .../__pycache__/urls.cpython-313.pyc | Bin 1051 -> 322 bytes portfolio_admin/settings.py | 1 + portfolio_admin/urls.py | 21 ++------------ 10 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 content/__pycache__/serializers.cpython-313.pyc create mode 100644 content/__pycache__/urls.cpython-313.pyc create mode 100644 content/__pycache__/views.cpython-313.pyc create mode 100644 content/serializers.py create mode 100644 content/urls.py diff --git a/content/__pycache__/serializers.cpython-313.pyc b/content/__pycache__/serializers.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..761b1951e8086e16d3748723a4a5eb133c5eefd0 GIT binary patch literal 1222 zcmbVK&ubGw6rTN=wP~70Z5vb3A|ftA_fUEhFWyp8ihC^#+s!1d-R#yk6a4W9h#(#d z{tNwcJXr?BgQwhtM7;XmZc-at5gpiX-@JMA&3oT_<63Qj;d<`|$)3U3SK7>$Gd0Ev zjbj$F(AZ&Z1B?w8nxVC0wk@#QHrN}i$?mYwZn4nWH=Y!XGm`SZZIyp;i%1tED}RZs z^gaK|h_3mDu1Wz(lqRnQ$Pwnrd{bBUAny)irI#M(nTlf75mH8d5tmPuXiqoe`)C}q zeFjFzzzhwricCz*#M(B?D6m5toWA3`x-lgW&)yx89CO^12d(i z+jsQp1-{LWP|?W6tGdE@l%|}YuwCEN9_Lv!5S;4;&IedxO7&xcVuJ*jivOF*hL z$wZcO4wRgBFj}PA?Ij}ZO1;9lRFO(z9w`OM!B7c_p-Yr9eoVK6r};nxC~6*He$Pa# zWY807@-pc0gD5@}SvNS!LG|)9$$8WrBv}xn*dkNGxsGfez0x+7168D@lH?-78+N+9 z_SQLVwBEU}iVkQJ(EGb5F4SqWOwb^>N>Bu>kVR4Dr8Tm=8Bn3)lKqEiI_ndLPzF-W zT!a3*`O|?q*L*5$j{BdQe}S)TK9vDAf6Rr_lC%87fYr8gip!~#<*A*8GoQApf2C5@wt3#A)d$1Z#XU%^Lo z!V+R&>Q>Yrz=rk)-@W(F_wH7;+BPw9#vy$-`P+g`xa(qdZHiYCkbt&Hiz2O)zzJB} zX)$Cij=WAf^oRt!!_J-mKY!Tm@C^nB-JaLjT3ES3H7_F7Ur-Aiz0(saEKnw+Se1G= zMiD6y#xhq?tR~fs0+Y&`gPVq@{bUg3J=q*#Rw6T#wELKfrxNYj=vl%ynlVxW^YV?X z3`O)6^yN^%M4*IQlmlTrp)0a<4BhZPiXTLtKp|0eWtPe?N``3;)>q^TtXH#m)|HE) z*)|iGSTi&28Re;YmW)#RNe;gV{CLEzP7h|;oF9Mi%5;BrH|Hlym+d((KKiEl7ac=n Ap#T5? literal 0 HcmV?d00001 diff --git a/content/__pycache__/views.cpython-313.pyc b/content/__pycache__/views.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2f0f093f001d89bb5848aa01c9e1cbcdc6e24a79 GIT binary patch literal 1521 zcmaJ>L2nyH6rS0&y&K!H>m)Qy)PrlK(4|#2RD==n-AERAZG zPIWm?l*X(iO$7MvG!acpbZi7oj-cZkDI@(ttTiy#-A=>V zY>>OcE)&-A+l=gBo?w9+blD3L-cY!LRIM$s;msnp-~pAUyqCb-hwqb1p6{IIAT?!jKE)~q|XT<;EP*UXMjgSy{r_>Nm^HQJ^JjF5I<3KrRX=N?aQkidz~ zq0c=;C??_=w%Cg*}1Lj`?Dwvte;nZTz&Fc z|H9=Se5otDu`2`E3eQ_xwf~32e*gy(hXk*`mPQ*d;Wl2!Z=&;@I10pl7a>?Vq&D;l z9TA^L$0XZ|tuElIc&C)|klx6Hprr(<$9o|9Yp5TIapHJyWQ8$|_=J3Y`>D-vY%%cjWW*Bn&*`QQ`)~5fuPENzZ_DLM-|U6i}Tj{Hpzy-bwdz zi(A$+E!Wp(d)jPYJKfVxKhq~3W*=mq>NES<>0f3ZFYlf*{&>58@kS56thK9K&qXct zr_T1K&OWL4=Wq1jOIf=yi=Kk;D@KOTP$+4qPTdx{>(e{)HRAcy4d5YER5YJ{1&68p zzl7bA`7au#CeiY1q{(ETQPIOZHPRqu3kT@T-{}0G=;K2jDaq}{?RWO@#G#_%Pw+rR%H&IF9%cmi!S=a5Jb9=j Ma7ltwp()S%7v;V}3IG5A literal 0 HcmV?d00001 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 d6fdce1cfacfd905d69cbaf52c969d828c06b8f3..051d24e56a6b5eae3fa9532470df7e2a601325af 100644 GIT binary patch delta 79 zcmew$+#tgHnU|M~0SI!K^)qK}?JR0Q69Aq67H&JHW)KKKU(2AUmfJ RQv=^8vB|ES+gVhBIsjxI5!L_z diff --git a/portfolio_admin/__pycache__/urls.cpython-313.pyc b/portfolio_admin/__pycache__/urls.cpython-313.pyc index 32f5cb7697aa000433b62c3ef801ec9c216874ee..036584b7b1505debb8f8f641b491283ca20505d6 100644 GIT binary patch delta 225 zcmbQuafqq@GcPX}0}!~e=x3$?>Bk@r46s2NpG|;_sSLpk!HnJvUW`SIUQ9(y3Jfuf zN({kFF-$;`*_08Y)|3fC>oXQHr?Y6Xz65bKnQpNZB$i~{V$aM=&M8evtztC%v k?=z@=WMg3E>=2tMK11%ZpvGku%@52>{7jA9MI1my03n(!x&QzG literal 1051 zcmb7D&ui2`6i%|~4^!J-J$QIpa2sedSlCNYi-^T`MWm~@g>*KV>`qN)!py9;y?GIj z_8|Qm{Cm6wJbCigvUqnUKVYp0I*{bO;pKbZ_r00f>Z)hyb+5NUI~~jVZjyGnO)wkk z;IlQbgf*}SPTxLogaan-^g9QxaKRe7cddatbPg-D7NGtf-uyi`S0DPDHl+1p;Dev9^oXX3<|-INvs0Tdo>|&G!4zVH1oC)2mfh3d5Fz%`DaEmkRd z;V+j?(cPhqZ5=}M|d=^EnY%G@x&STobB>?1QcbVdY6 zFYCiCQA#p;g3@S&<2QsQ=-Ms#BRA+laat}v$ayl&$Rn|)v2FdxZT-6J*tUJ;tlRES nu