From cfadccdc1ca36481274de128a3198f60b419f98e Mon Sep 17 00:00:00 2001 From: zacc806 Date: Wed, 24 Jan 2024 17:57:11 +0600 Subject: [PATCH] grid --- .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 148 bytes .../__pycache__/settings.cpython-310.pyc | Bin 0 -> 2376 bytes NITAKUSHOP/__pycache__/urls.cpython-310.pyc | Bin 0 -> 1289 bytes NITAKUSHOP/__pycache__/wsgi.cpython-310.pyc | Bin 0 -> 557 bytes main/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 142 bytes main/__pycache__/admin.cpython-310.pyc | Bin 0 -> 834 bytes main/__pycache__/apps.cpython-310.pyc | Bin 0 -> 417 bytes main/__pycache__/models.cpython-310.pyc | Bin 0 -> 2257 bytes main/__pycache__/urls.cpython-310.pyc | Bin 0 -> 510 bytes main/__pycache__/views.cpython-310.pyc | Bin 0 -> 3285 bytes .../__pycache__/0001_initial.cpython-310.pyc | Bin 0 -> 1722 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 153 bytes main/models.py | 1 + main/templates/main/index.html | 37 +++++++++++++----- main/urls.py | 2 +- main/views.py | 7 +++- 16 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 NITAKUSHOP/__pycache__/__init__.cpython-310.pyc create mode 100644 NITAKUSHOP/__pycache__/settings.cpython-310.pyc create mode 100644 NITAKUSHOP/__pycache__/urls.cpython-310.pyc create mode 100644 NITAKUSHOP/__pycache__/wsgi.cpython-310.pyc create mode 100644 main/__pycache__/__init__.cpython-310.pyc create mode 100644 main/__pycache__/admin.cpython-310.pyc create mode 100644 main/__pycache__/apps.cpython-310.pyc create mode 100644 main/__pycache__/models.cpython-310.pyc create mode 100644 main/__pycache__/urls.cpython-310.pyc create mode 100644 main/__pycache__/views.cpython-310.pyc create mode 100644 main/migrations/__pycache__/0001_initial.cpython-310.pyc create mode 100644 main/migrations/__pycache__/__init__.cpython-310.pyc diff --git a/NITAKUSHOP/__pycache__/__init__.cpython-310.pyc b/NITAKUSHOP/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f33a742029231c82cb1e820ecf355e8f84f7eb83 GIT binary patch literal 148 zcmd1j<>g`k0;wk(QbF`%5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!Hyenx(7s(w{s zc4m>jOMY@`ZfaghvA$nsNn&M+ydmPnKq3JjDgwvu@2+eC5$dZc;vU}6<+uQJituLk?bTMr!xfGTCL9IJ7>Q=XXUV3t#I(U`Nyw#p~`W; zXAje#B0M~Wi~a@!;!Fu9=t7b#n<~F2l8gZkSilP4g;RHLn562dkWU9o^Eo+K0Bn zb6lmdX9sR5QOp<#Tq^B`k<@7#>a)JS)$K{6DBQyilPi@?9N@@i7)gU8=`PCM)@;^9vq1zZ_2HlklE z3JM)6k7FEX;Do+{0|fvT7LJHRmE)Y1F+3Y$X*c#f$s?3W;qK|0>;OR^Od{!(?Zue> zpI8yzoeK0P>^N8BQ?X~WVX{79fdmvgafH|I3_g2wc<|77Yu+FZAB_;UUpR;Ee(2mj zvK@Sfy$HX$7k(6cyJqbT5AglN+eWRFtc+n~Ck$9b269envOFt|A>!(cFmu5HV@D%Q zlWQ|diYWz}&nkRS*e-b7ob_O^F;2D}G+FU&63F&wMCCTj>S3@;T*!89;^Py9JbYkB zSk6~Z*paMfG{B^NqDvmlhL|KJPx@d>BzaX8l1#I&@o)}Lve zMk+R%+j?47dp#?kmAXBn+3o1b>J)tk)FoLB1MT^qrX_@T?bu@{rH=-uY|@t=VfbNE z0pVm`6VjsA*=%;SRP3m2ExG^)K(aNHdtOK*o6>_YLKYk{1m)r6KE;vBGBRR@b>b7x z&ido|*dmOQC+9_KlYscK-@<{*hNu4Do!5WdH@!)YrvOjS3($#u91-U%LIDSBF-_p@ zj@GcYy1JpK7n>d301*hFVDz-oZZ;Y%ZAabK(uM7A*RcBAt$Me!k`d(8 zC-66bqa7GTZed|@PArLYqEIfBD`G_u%e)|z1>v3ekN8f!ER+Pk$ct}bUIm#rb^RqS Oi$eY_iUpBh;Qs|JIxE=# literal 0 HcmV?d00001 diff --git a/NITAKUSHOP/__pycache__/urls.cpython-310.pyc b/NITAKUSHOP/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6d1e4d6ff1d83a1542003a83feb8ce90f682f7f3 GIT binary patch literal 1289 zcmb7E&u`N(6i(9gN7A+H1`=rE;9D1IBw`>TRe%_5V->KW{g6;DT^hS>x;Tz(7q(tG z@1NktjlU;XxbQC^BzSgPQ6V9LE4$Br&)@srXFIIXa1Cf1Uq6$#wqblxljT-}$y4a! zBMjIG4Qyg7HK`R^rm{|po0q-SMZ$1AvTZE0^4ysLOsd53n`BF=b?ACVTRgS8I*25wzj4~?*e z*G>%8z4d5n8HRgy{0hY^8zjRCk7U9!G+-P>d5&_<#w3=$>zn8m`!<0u=l zMY@>LfMme~e>;#YPht_M-~iH#z}>ryC}4?>yFbZdO;@MYp!a;VgE5LSl+c`U*+FQ) z8AbG}r|Ow4&S>iR?RmVaKozi5A#8wnm&cs~+71+wY=!Kj#X)5Jb@VRB7sT7y5LyFbJr? z@u*m`>7l_~%Fax#*>U(v@CC_v?3NbgpV{_PHVi<(MW(h|(70{SbHBkeF+8&Yx15cN7~Qx=MlKpZ&v8VS~w5Eq0hDy4+*u|e8YNV#mxda`lq^{m!TN^|AR ze}E%5evhwk;V*E)n+P={c}C;Wy!U2oJU)&|ut&dt!q37ploz|aJ6W!YS5c+4z7yl}3z&pDS^*hDUcDe=Fi0xJ%N zKTA&d0+kKfBt;k@X^|TmxO@-HS~X~V92zCe#Y#JW zdyn)7Y1-%9y1!3@@Cx`wT&ji-uvoR)El-sbm#b`nHNR1^9Vw}={n3lvqEEwTAhreT MlA~L9=v^Aqe-R<7x&QzG literal 0 HcmV?d00001 diff --git a/main/__pycache__/__init__.cpython-310.pyc b/main/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ae0eca0356dbf48fb08067c7d0e80c964c74479d GIT binary patch literal 142 zcmd1j<>g`k0;wk(QbF`%5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!Haenx(7s(w{s zc4m>jOMY@`ZfaghvA$nsNn&6MW?p7Ve7s&kI^f`tJ99`PT7 literal 0 HcmV?d00001 diff --git a/main/__pycache__/admin.cpython-310.pyc b/main/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cbcb6950e324c648e80ab28efdd73c582daa26c4 GIT binary patch literal 834 zcmZ`%&2H2%5VrH{-DXRnMM8)dh=iIKK&S{LPOOl6LAgY3#!cNiKR8LHK z_zIW40umB4?iTd`mi&11ZD!k%l>TQv?C6J;GHCvkiam@0?4Mt}< zcd>+4cQ^PGmIqF}mXm6FyK(7z+rwN>HTm6N0bY)9kIxVkD><+-01iPDlp+05^D=@6 zbHr|S7w#1$aZx8*<)YEd%{8|vzF(u0s4CJ|m0MO-i%AX1Syg?UrP*3CqsOTNJq|{0 z-2PzI&=0f0&q8&om4We^*#{WV!>_~QtZ!BENnU7Myy@$?RoyfeYdy(}`S`3KidO2b z@TDIP8=K(E2=_>WU?Rx4*Zsfv=jeD>e1lE;#>)`T0M7_Qh>(mJVn~n-YygrWT()J@ zbCD;$ek(AJiwCP~mMvz4nH8lz-JZl(kZ5{5u(mT>eEA306&?eIb7Rj=Qk;ghT~ z9pPhCYE*@ZuJdf(wfZhs1zNu(>LMK2K!{3~N(eg?f|y<5;;|6Voh8lGi5Gb*H{Eir>)7p#WnG)7erY%f-I>f0 qK>$7r*sit+xgG64@3@WUHaPbGu09%3%?6kKr?1?Bj2k$HDgOgiNo0-y literal 0 HcmV?d00001 diff --git a/main/__pycache__/models.cpython-310.pyc b/main/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f146df5a22f54971dc5ee34a8262c09a6cda19dc GIT binary patch literal 2257 zcma)8OK;mo5ayB;9}+Fgk2rSvL|YeCi&`jpD}utQ-4sC)p@4m^!QO~2v8acuWNV23li%bnSo?;9yySZHf_et+?c_{q|= z-^jT7m@u|6G7?QK@#VMIsyaUFG;bZS{TC_I+fmh)MT+|49+V^@@{9E@YI1Qb$;-^(f)uMA;F& zM5a6>cbsOTJV>ovwftFJ$RIw~me8^SSgUA6~xT`9pqbA01{ubTj ziPv5^bCUF#j_ z9uc0~pyC3oE_4SZU4-5v67mjKmS8Po#ly-9^i}8!(C^fG7y25AyvTcK9X$~FE??ry zAn-b0;j4IW@H?p9nzFyE>ZY8!fGCvmq=>;JUSZu$6CXWB&P$-y)vW;S%B5vcEKX3%v$Wq{vrh<(gaarPpt}%B$ok&6H8TRe#s9VB@5_*!rD_2O|hAINyCPs}ai**f;dCd9q z-{~$l=)ij<-XL)cjY>Fg(c(K0^Tp;i|4HvvY;Widit9+2epXX_CE%#`!&HhWOuiMTCH0iO^I&i1!S2_R zm?=LXLETSMUdvci`_VKAMag&70?b08+7xV5XbF&kwB8tp;Fa1U?|=ZLLEA@uw{u1wt^vFa-6p09r_ksy7hUyc0zpv zmiA18geCv&pYQ(i-BnREM6jZtFaCiM`ZjRA0)Qvj%?^YihI3Tl1Y^W3X6II6CpO%j z#Nn8^+}^p&V}o}a$OrOR(9;lTz(zfVXNr1?fqZsjD07p5jaO)LdxZbc1Z$_JYI}sz z47e|Xzc$(_s3ac<0e|)heRh^VtQptXR8I4bfqLO>@zx?rz@XZ8qCb z#j{EtQbP-(@2`{6^&!0^fI*aMCfI`fJ9|TXF)*&E$d{9$90OjFmGnE(hOgQCOQHOw5qr)n@=RiCSc_BNVZkMNk{iWlILpE7QBR>mO{~e syV_PYG1DOC$7y}g{=9&$bG|SmYaT#C6k^AU?HI?{#};;eee0~JKW9db1^@s6 literal 0 HcmV?d00001 diff --git a/main/__pycache__/views.cpython-310.pyc b/main/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..363069a45bfd69d5384a78cdc79b0bb3965f68af GIT binary patch literal 3285 zcmZWr+iw(g6yCY)rOUPyFNg+ph?is&+M39tF&fm=sMQEYvoFoEGqh9oQfFq7Hru2( zD1=fHG4Z7WKKiyT6iRnnV*CeYUguGth%Y{C1i$ahPTAJI%;k4E=R4o|e!t(T_4Z~H z_$>a}w0_Mc5`XZe`=jCIJ^bBoa4{36QchHqf>Kcns={}*tX1@aj%Ur(%gIWrkgB8$ zX}l*b{j6%H%=DsO$e0Q1%95%EXILkjhODL%FRt)P`ne zR@I*sCE+C-3A3l6ENH-<9SQZ}TE(ir39J4MzvVamb${D$2G@;XE|?Ey(Xj1r2ABM% zF<=aT{@I6N@~rK+0P0$$TGe!tnE6pY874j3D_db2jUFNo^|Fmox@qIN-*!ifb#L6N zdUgpRn_w$58Aa@dSvG+M+j6H5R*H6Y$OexW2FJZhIiGUUa1f>=KHX3&mdg&w2vhY* z6B8X3FL^yoJJz>#3oauB7d+<>I-F;4`6b~T!R_zCp>f1IG+jJrJ3}ATO7#i=xkDqi zS3FlgHC~$>67T12>pORFaw<#;4hHBxhl{GJN(x_G|H-DaO23vzLvH=->4>pa5EinK=U<*)rdO2#Y(x_23Go!75eqz`%eOb#uwz5Y5cv z-ohU}A|iS+{7qx8vq8iEJ~Db4W7`HsH372e--qpO&R7qw8i2JX`}BHxW0S?;VI1a-1;+ zQBQYdYI{KR3WLZ~6b8D;BoQOk@WNzB6PJA(q+E$Jhbatl2l|-&tP*=8WFBIL(YR02m%^FFPgX{xS1g>5hKyggx=UaX+)N} z2VeojYUFMwTZV9qe8A2eB+>#fjOGtM=zNwsV90bVS%7w_3nC}WJ8(_;Z$s9y&S7Yo zdhXhMu^c$?z7QO3254A^`IY}KJH*qSHX!2eEIUq&1Nb;O;-34@eWd28bG%?}VI^?C zz`#9vLl?K?E|p+6fI(8TDYHl`S8J&?itsnL7KtlpNuxs2aMNTGgbEN{^gIjn`8=U$o1` zGi3`ex?8S~;hyPKH&fGxrMl>pJwq&yqChpr03NASq-M#drND8XWh)Dhs02!#waX}X z99FdvHA$f+?2SE)(&av5`#H;X{EyN05Z5M5^_r$2T`KwcTi=fZw- zqF5cP4WfKr5SB*Tl~((R--#UvPXhw7YgZBqswm2ioq&sqiz@rV9+;X{&&spbV>6P1 zy;r#IKj05=<7e;#IL#F|xLPIDi3WWW?ssjLDFg8k5Kx+MgR>f&IM!Ha91Y@2p`1$cf=Mu29DCiSl9* zN|uW>$y75=fk)YKpn2EZ3W7cC*~~NyZVXK@h6K!^6&gdEHzrLWU~y;Sf{C9E4QS5o zF#!i@EpVYVHxYS=JVYk6=VVMm3p&sRCp4k=g9SI{R;g*}e`u=oE~DNyYF&Xj}> zta1@VDDq6T*fS;~Hi|gR#Kl(vvjKI?nfVwg9n;9bMG!{<<4~tHId%G zcW(z{jXRJ1Tgs)Cg;aTz;$u-noKn@H^l8DOQZrSKNJNfhraHi<9F0r@tPiR4q1p#! zT|UunNJ~>X4@J0-75i8hglZj}Fccg2gCZF<)yjpe+tE|@OVVXvqB^Bx( zVx&(+TuXV6Q^`e`e2KT92@{rtsUk2^ZkZZ<`;>FAe{!&Y_(-|?07qqL8`b2cQ(ixi zKN|82oen+xwKq6RV?LO%b0G(ZX;8#G$+N++$k};ua+Xd9I-Y|U&+A}kXJ?nz(dkbw zrGCF1?AbRsxQ0#evx&JzdghWzo|7gqZPR{k|7mwCs-{=Hhx3+6{%Cf|KlbnT3PEiD zt)-Xhd4cup{!*UhH&v^0z7L}^Ayp1G|0DLRA3%Q*7P*g>m9j4!uU1FMQ0}Ky4Sa@w O1tV+XutZ#Q!}=F*0|H3^ literal 0 HcmV?d00001 diff --git a/main/migrations/__pycache__/__init__.cpython-310.pyc b/main/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5226f834842a6907fdded49ef19e142823618cc1 GIT binary patch literal 153 zcmd1j<>g`k0;wk(QbF`%5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HGenx(7s(w{s zc4m>jOMY@`ZfaghvA$nsNn&&ryk0@& WEe@O9{FKt1R6CHV#Y{kgg#iG^8YB4t literal 0 HcmV?d00001 diff --git a/main/models.py b/main/models.py index 60d91a2..751a78c 100644 --- a/main/models.py +++ b/main/models.py @@ -18,6 +18,7 @@ class Category(models.Model): def get_absolute_url(self): return reverse('main:product_list_by_category', args=[self.slug]) + class Product(models.Model): category = models.ForeignKey(Category, related_name='products', diff --git a/main/templates/main/index.html b/main/templates/main/index.html index 9d14f05..8445494 100644 --- a/main/templates/main/index.html +++ b/main/templates/main/index.html @@ -51,18 +51,35 @@ -
-
-
- -
- - +
+
+
+ +
+ +
+
+ {% for product in products %} +
+
+ {{ +
+ +

{{ product.name }}

+
+

{{ product.description }}

+
+

{{ product.price }} $

+
+
+
+
+ {% endfor %} +
+
{#
#} {# #} diff --git a/main/urls.py b/main/urls.py index c07eacf..c2a12b0 100644 --- a/main/urls.py +++ b/main/urls.py @@ -6,7 +6,7 @@ app_name = 'main' urlpatterns = [ path('', views.index, name='index'), path('about/', views.about, name='about'), - path('', views.product_list, name='product_list'), + path('products/', views.product_list, name='product_list'), path('/', views.product_list, name='product_list_by_category'), path('//', views.product_detail, diff --git a/main/views.py b/main/views.py index d48df06..4222280 100644 --- a/main/views.py +++ b/main/views.py @@ -1,6 +1,7 @@ from django.shortcuts import render,get_object_or_404 from django.http import HttpResponse from .models import Category, Product + def index(request) -> HttpResponse: context : dict = { 'title':'Home', @@ -9,9 +10,13 @@ def index(request) -> HttpResponse: 'dict' : {'first':1}, 'is_authenticated':False } + products = Product.objects.all() + categories = Category.objects.all() + # Merge the two dictionaries into one + context.update({'products': products, 'categories': categories}) - return render(request, 'main/index.html',context) + return render(request, 'main/index.html', context) def about(request): context = {