From 82e11f9920d5da4204b0c1ffe826ee17fd1cdee7 Mon Sep 17 00:00:00 2001 From: Clarence Maor Barzilay Date: Mon, 22 Dec 2025 07:39:04 +0000 Subject: [PATCH 1/3] Django Tutorial Creating Product Model --- src/db.sqlite3 | Bin 0 -> 139264 bytes src/manage.py | 22 ++++ src/product/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 143 bytes src/product/__pycache__/admin.cpython-312.pyc | Bin 0 -> 321 bytes src/product/__pycache__/apps.cpython-312.pyc | Bin 0 -> 390 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 766 bytes src/product/admin.py | 6 + src/product/apps.py | 5 + src/product/migrations/0001_initial.py | 31 +++++ .../migrations/0002_alter_product_summary.py | 18 +++ src/product/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-312.pyc | Bin 0 -> 1193 bytes ...0002_alter_product_summary.cpython-312.pyc | Bin 0 -> 701 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 154 bytes src/product/models.py | 8 ++ src/product/tests.py | 3 + src/product/views.py | 3 + src/trydjango/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 145 bytes .../__pycache__/settings.cpython-312.pyc | Bin 0 -> 2430 bytes .../__pycache__/urls.cpython-312.pyc | Bin 0 -> 1014 bytes .../__pycache__/wsgi.cpython-312.pyc | Bin 0 -> 637 bytes src/trydjango/asgi.py | 16 +++ src/trydjango/settings.py | 118 ++++++++++++++++++ src/trydjango/urls.py | 23 ++++ src/trydjango/wsgi.py | 16 +++ 27 files changed, 269 insertions(+) create mode 100644 src/db.sqlite3 create mode 100755 src/manage.py create mode 100644 src/product/__init__.py create mode 100644 src/product/__pycache__/__init__.cpython-312.pyc create mode 100644 src/product/__pycache__/admin.cpython-312.pyc create mode 100644 src/product/__pycache__/apps.cpython-312.pyc create mode 100644 src/product/__pycache__/models.cpython-312.pyc create mode 100644 src/product/admin.py create mode 100644 src/product/apps.py create mode 100644 src/product/migrations/0001_initial.py create mode 100644 src/product/migrations/0002_alter_product_summary.py create mode 100644 src/product/migrations/__init__.py create mode 100644 src/product/migrations/__pycache__/0001_initial.cpython-312.pyc create mode 100644 src/product/migrations/__pycache__/0002_alter_product_summary.cpython-312.pyc create mode 100644 src/product/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 src/product/models.py create mode 100644 src/product/tests.py create mode 100644 src/product/views.py create mode 100644 src/trydjango/__init__.py create mode 100644 src/trydjango/__pycache__/__init__.cpython-312.pyc create mode 100644 src/trydjango/__pycache__/settings.cpython-312.pyc create mode 100644 src/trydjango/__pycache__/urls.cpython-312.pyc create mode 100644 src/trydjango/__pycache__/wsgi.cpython-312.pyc create mode 100644 src/trydjango/asgi.py create mode 100644 src/trydjango/settings.py create mode 100644 src/trydjango/urls.py create mode 100644 src/trydjango/wsgi.py diff --git a/src/db.sqlite3 b/src/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..7678aeec521eff31505a19b6ad302c5809899823 GIT binary patch literal 139264 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 ovV0}t4+ldbJpYe@0sXod5s; literal 0 HcmV?d00001 diff --git a/src/manage.py b/src/manage.py new file mode 100755 index 00000000000..498172c3ac3 --- /dev/null +++ b/src/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trydjango.settings") + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == "__main__": + main() diff --git a/src/product/__init__.py b/src/product/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/product/__pycache__/__init__.cpython-312.pyc b/src/product/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..610c8890ef8891280354402607f78c6828bb5973 GIT binary patch literal 143 zcmX@j%ge<81oJ+4WP<3&AOanHW&w&!XQ*V*Wb|9fP{ah}eFmxdrKew>UzA;3keHlW ztnZSQn3taKlA4>ZUtE-|Ur>~vQkq<%A0MBYmst`YuUAm{i^C=tD43IKSHud`&IrWC PAjU^#Mn=XWW*`dy!dW4_ literal 0 HcmV?d00001 diff --git a/src/product/__pycache__/admin.cpython-312.pyc b/src/product/__pycache__/admin.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb318916ac8cd28dd5b47aae564392a748bc713d GIT binary patch literal 321 zcmX@j%ge<81dl&@WLAJ^5C;aBp^VQ#K*n^26owSW9EM!RC`Lwx6s8pB9Hw06C}u{6 zRK_e0m=*+`#f@OYSgFjb86j*&hDsJq)|ViTCgUyE#FX63yq6$3AdfwuC_kk%xx`PC z?G|53R$^XyzFu;EUP)1AQW3~Wx7c#?Q&Mw^i&#M%mg3Bk)LR@ysp*-;C8#k8LNkk<ltPRx0y ba*w2bS&a$SHX?q(;qMOO!OPVjP-;$WNfBim*hq5)}>ZkQ|y+?B3eM6ihMu&CEBuGqdw$b+rkkkkd_i69Vu< z84I!JV0Kr6Lx2H>48$;i5Ex(sVB-K_lfb^UNH{-7rpAFev^;yN3=fK0oMOWA=$r?@ zB6;>fdJh2s0mL9M3_#3&W0|NihGSzS3sn->6|1GKWsOa2j;)cQeL=nAU0h~pjBQ*S z*Z=aI|J^s5rv}Yo!*fLa8BcK;71M$A%f6a%I6#afy<&IUGladv!emcaNy*q$)j)sB zamc_0Od=YG3}q~gNUrlR?a?CN@>WCxp(Kn6LZXR~9978_ZXxut44IB_HCN$0*bVt3 zN*ES)K?_ENvrPtt_N-u%N1SE_O%u`T>KEtajMIpSdS1qH$cLZ6O!akk!+(|Xy*yJj z`Q3h)^wKVgQ$OdCpXpA0{d4QtkgKhzl=`{+iBt#R#BIO7{>^P4yX}wB#J#ouaM^R| zs5^1*>_0wnJBrmgb~{JUKi{6XoB!~>y4PNB@GFb!w>(QYxT^@(UrrMBP1%H_k!tY@1v}VE1n-}lcTlO1BSY`eJF>AHW literal 0 HcmV?d00001 diff --git a/src/product/admin.py b/src/product/admin.py new file mode 100644 index 00000000000..773b3a1c15d --- /dev/null +++ b/src/product/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin + +# Register your models here. +from .models import Product + +admin.site.register(Product) \ No newline at end of file diff --git a/src/product/apps.py b/src/product/apps.py new file mode 100644 index 00000000000..09a778e3eff --- /dev/null +++ b/src/product/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class ProductConfig(AppConfig): + name = "product" diff --git a/src/product/migrations/0001_initial.py b/src/product/migrations/0001_initial.py new file mode 100644 index 00000000000..b883ad7c85f --- /dev/null +++ b/src/product/migrations/0001_initial.py @@ -0,0 +1,31 @@ +# Generated by Django 6.0 on 2025-12-22 07:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [] + + operations = [ + migrations.CreateModel( + name="Product", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("title", models.CharField(max_length=120)), + ("description", models.TextField(blank=True, null=True)), + ("price", models.DecimalField(decimal_places=2, max_digits=1000)), + ("summary", models.TextField(default="this is cool!")), + ], + ), + ] diff --git a/src/product/migrations/0002_alter_product_summary.py b/src/product/migrations/0002_alter_product_summary.py new file mode 100644 index 00000000000..5c3ef406856 --- /dev/null +++ b/src/product/migrations/0002_alter_product_summary.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0 on 2025-12-22 07:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("product", "0001_initial"), + ] + + operations = [ + migrations.AlterField( + model_name="product", + name="summary", + field=models.TextField(), + ), + ] diff --git a/src/product/migrations/__init__.py b/src/product/migrations/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/product/migrations/__pycache__/0001_initial.cpython-312.pyc b/src/product/migrations/__pycache__/0001_initial.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ee22d087e921599d731fcfb4193b55fd309902c GIT binary patch literal 1193 zcmZ`&J8aWH7(P3(^KycdCKU})38>Jzv`vthcu7D>0a4USow8W2@0wof*ui$7DGNvp zjNM>lMa@t)Mn)u-M5>hNCL|WRMQRZe6L)s3bm32Q_x*R@{cnFyCgXt0%IPEgDg?k! zrUW94z{y<--UA3AXMhG*+HPj9(!ZCviPvQ++ zvo#l6rbEPr1(D(C>?)AN2%N|qbBaKfgP_Vot{SR=YM2K|s7nEPyh9#_=v|~PkIw=G zIrH? z)j4;DDgW1Ix|13Et_huq;8l&QO6{zYBeB(>ej6mRW?QhOyM)KELioqaN|;Dm%e7S9 zMw*KtNi=QT(CoIlgW4qKARB82-a|xsf$UAoL8_@W5D{GL8t8bJhO2P2L)xxtAhYIf zlLSPLZsR8F7j2%fX=vsS37aj$AOf|mqhnS8{EPOQ-lrhasXs$)8k&wA-xS0(>^dak zv>Ggwy`;O1og)3~mStR`4kHk4X)VL02EtxE;ub~*be<_m5>>qrRh7h5m5xixKom== z`n;tXj7+r%HnB?+BN9YSWI|->7&$f@KazOhRbrJ5n$5aTr2DvbkJhNde300KZOtCR z4Ycd}P+Io$@U^(rM5B@Y1Wu?8@b^yXrDg9pO_pV8xvrTtYZ*1Hl4I+orr(s(c+gAb za{0PCigKyhw%OO>EetrH>GBr*NM&BH{FunSemWFE?Bct4KRVruP7l&~s^_K#+1dR{ zKResY&JM09gPFO(Wd=@TLT+*>MAMmJ24tqX`S}l5`}z4^e*RED%HQnDw+89yZn6AP z>=(B^4=>GR$EB4aQ1@{3>Azuh>>uXW{h>abf__)zH=7J7w+L-nZe zuq#)F7gE{OsgRDvhoOm#_~wZ{7v%7aPF)OoHCTe1UfI1$`&rI1n#WZr`WwCNH}S50 kjjHT3a|(1BhB%Jk literal 0 HcmV?d00001 diff --git a/src/product/migrations/__pycache__/0002_alter_product_summary.cpython-312.pyc b/src/product/migrations/__pycache__/0002_alter_product_summary.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..888c8ddf3a67c0123913cfd4937cec25913a6622 GIT binary patch literal 701 zcmY*XO^eh(5Uox!JxQ3A-LQTjuE;P5xok$S%7U<{_^~HXL1<#S9TM|pCxgySVGkbn zw!cBvf8uHIFhgHGc?-;luqV4S38Q_eyjNXS{a%spJ3BVWQ>>pxF#`ChNOyWISRF}l z4iqR#AVoe(HD5!Z!4sg`DNvoE7zCJVD-Y-R5P1tEP;XxJUSt)RuQ66nu@M3G#Ifm=QOE|7`&&gQ`0mU->_;*hQQAW^{t&By-ktv9Mlt zTBNXk!E-tdD=`?4$M;B-MO73eyf52DznrFNz-O*5^()OJ3sNSGCidP&ETJc^B}~%f z2@y6SvTm9%i3fzdp9YDlRgAKNWt3%M#7eGKBv4cN9 z<5#o;enV3E7eaYUhFV7m{lS3TH69>* QW-oR}^WD*JkfiDU3;$fH=l}o! literal 0 HcmV?d00001 diff --git a/src/product/migrations/__pycache__/__init__.cpython-312.pyc b/src/product/migrations/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d028235acf2be20ebed39460e23f7e2ecb604f48 GIT binary patch literal 154 zcmX@j%ge<81oJ+4WP<3&AOanHW&w&!XQ*V*Wb|9fP{ah}eFmxdWvO4DUzA;3keHlW ztnZSQn3taKlA4>ZUtE-|Ur>~vQkq<%pPQLplvt9PpI59OAD@|*SrQ+wS5Wzj!zLFf apOb1=#0oTt5r~UHjE~HWjEqIhKo$U|<0dlz literal 0 HcmV?d00001 diff --git a/src/product/models.py b/src/product/models.py new file mode 100644 index 00000000000..e46b0cf06e1 --- /dev/null +++ b/src/product/models.py @@ -0,0 +1,8 @@ +from django.db import models + +# Create your models here. +class Product(models.Model): + title = models.CharField(max_length=120) + description = models.TextField(blank=True, null=True) + price = models.DecimalField(decimal_places=2, max_digits=1000) + summary = models.TextField() \ No newline at end of file diff --git a/src/product/tests.py b/src/product/tests.py new file mode 100644 index 00000000000..7ce503c2dd9 --- /dev/null +++ b/src/product/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/src/product/views.py b/src/product/views.py new file mode 100644 index 00000000000..91ea44a218f --- /dev/null +++ b/src/product/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/src/trydjango/__init__.py b/src/trydjango/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/trydjango/__pycache__/__init__.cpython-312.pyc b/src/trydjango/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9d067260d0ddf55610884be48522c5f175d24258 GIT binary patch literal 145 zcmX@j%ge<81Y762XM*U*AOanHW&w&!XQ*V*Wb|9fP{ah}eFmxdWuRZ4UzA;3keHlW ztnZSQn3taKlA4>ZUtE-|Us6<=0v6GakI&4@EQycTE2#X%VUwGmQks)$SHuc5fDwp` PL5z>gjEsy$%s>_Z_hTYb literal 0 HcmV?d00001 diff --git a/src/trydjango/__pycache__/settings.cpython-312.pyc b/src/trydjango/__pycache__/settings.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..62109382312ae2560167d82b993a6ede834faed3 GIT binary patch literal 2430 zcmb7GOK;mo5GM70TXvMhaf^aM(xh@?DsGz8DAF{v#Mnagswl@TF9fY!%e47WxGOu> zNj>+{TYJbUw<15KKoO&d7(5y1rM<}sddaCnO11>qKvP0m&d%eT+1Z(qeoH1}3_Mql zSGC{c4D+YEIe9`u;@w|B{LCOmW)O>fI&1i3AIta{?8E+7>_BTfdSW(uzZ#O;o{tgV zrOxBYA>^0CC?H2#j2vw-DEN|t!Z?@TQlBzQDa*HIgKvK)9A811O6_+H-l#7i~CoybLwq4 zQmnA8nk|bXm{QGb5pL76Ico2t0lRHm+qg;jSZoEG*j6b<+{Qk4b0A(&k)fF!p{h-X znm4%)0UT}!d!N4pwvPeRux!j}Ccqmi)hv^P58cwhp{C>8;2+1fC~cFkayeu*2|w^~ z;=gGbIc(+tE=R4l)+D);fO7+Qx`nyTj;?dMMkr@(jt-=n2pnO}=5|%RgUSE#W#i2; zM}NEbnPr_oO{H7iYa6_m((Z*xZU;PmG{JODuu18D8av~NLvN#@x0DDNF z*7PcJ%y9A$CpjB8E)ViJW_ACZL+Dy_XIpLVKu_@BJ+@T?SKDs+lQFy0X}|FuTPNMz z5Qk!;twYQ48vuY!bkY=j!E4UOP)wW|uM(b91#YbgVOciG`n&U!FlV)R8$W}Vpk1g= zcMOcG(9P62`fdihcPErjvvZEYi7Xp%!plPbiC8H(fkLq^IT4{&Q#>kMtu>0(iqxGO zC1Q`XG+u4DA%EWGIAMf0)s9Y2%NA{n@ULy@Vo5VJU3Cln=|ID>yAMAUsjQir(J@Nc zY|*We{Wl+KKWKp3FvbzUqYnkBbPQ~3&9ewWY%X+&<6mp!yI~mO&taKBB7W}#3*z$H zijx#drRus^P*$r_Lvm8ZiqrrWFrWe?Csr;N3MFw}sEbabUadBiwR$OEtvq(34Y6D+ z2@O$l((BSn(bX>%^MYF}PP8C21lO(P%nECbRi!3K(t5RCP@W2ZS zL?vG>hyYkDi;7%@nux4Hz{SO-iW73Fh76H606Fh^|CM>?j{5g^a!?jKq^&|z_z%1CRJy9v3`h&CVRo7^h_`LHWr!j^-^y$ zk(3W4879s368#915!u7^%wcBsD8apD0@qS~e<%|>j>dzbzCW4t^`iYxn9QBmOd3#w zslyrmFg^RrgM;+VljA6t*3wEe>s028IKM#8T=5Bp589LX<)!#DHLlklc%XNgRAW>+V7c6Ksrh z%ES*q?EDEvHcL!QY^^Gm4v2SW8wDgJc#`e+PVc_=z3)ALT3`1pu#fNVr9T|Y`l^G* z+}b&L3eLhxtbvu-iIdsP8927~TUm>_1J|}3i@J$RovA@<0IKiw?C-ITK0qyPV|%bV zZ~H6c6&!d^9z8%Y&qwKaCWuOTjz(M{CFaSLNVwJ z&M?jK_24pAyhvk-buxzX5_@-F5C&K>^mb=?Y)G532J}jRZYK#MIZ9c zk4CkWVI@~JjzA0EkgRk2MwEYMJIwePgMdw?u0AlhUElY<>5cU5vP}|}=HR$m@s}$m z#1H+oay5!zKccAIs3}1wN~A;4f}3S$iKoy%PwC23(bCn#%g)j;-&-fT)@dIfaPdqQ zB&HJYm?ht#jAJQc{A=yaq6NkLbnOP?$tY|pLuic?X^XC7%sLCw?Dg=j#|#9^SUGS&-fF+;W0)4 literal 0 HcmV?d00001 diff --git a/src/trydjango/__pycache__/wsgi.cpython-312.pyc b/src/trydjango/__pycache__/wsgi.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6d18466f0bc2aced332e0e065f6e511540d5403d GIT binary patch literal 637 zcmYjPF>ezw6t?d|Q(b6;D%#mXERo7NEDWeZLQ05&pdC_#l;z@{UlIqOeX`wzbnC>x z4`AX4pziz$mLiZ4H-QiX8z@^RoTO>{2EXt5>3iSzEPvYAh>(wu?_1(6M(EePSVidq z%nm(xhdAmYj(H$)7yBH_APc)8Mu11_E6P78+7`E#R^rre5YGpj z&`T9%P-9`VDk4wh&}T=|6_sn6AJA;>>3oMyw0UK7mV%{?#alNZ)6|-jUaBv)i1X?B z`tI^=ADOBr`yYdB-5-BLjPbvqj7zgkgrnc+{tpzqiB6(#XzMfDI@^xV>W#0c`LlZG MOZDza#oY9y|5A>+;{X5v literal 0 HcmV?d00001 diff --git a/src/trydjango/asgi.py b/src/trydjango/asgi.py new file mode 100644 index 00000000000..41b1707ac68 --- /dev/null +++ b/src/trydjango/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for trydjango project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trydjango.settings") + +application = get_asgi_application() diff --git a/src/trydjango/settings.py b/src/trydjango/settings.py new file mode 100644 index 00000000000..6b1e08b9713 --- /dev/null +++ b/src/trydjango/settings.py @@ -0,0 +1,118 @@ +""" +Django settings for trydjango project. + +Generated by 'django-admin startproject' using Django 6.0. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/6.0/ref/settings/ +""" + +from pathlib import Path + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/6.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = "django-insecure-ro1e8=#5p6+_k8*dqi8xwhvd2atv@s+djro(+kx%nc$uk15skv" + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.contenttypes", + "django.contrib.sessions", + "django.contrib.messages", + "django.contrib.staticfiles", + "product", +] + +MIDDLEWARE = [ + "django.middleware.security.SecurityMiddleware", + "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.common.CommonMiddleware", + "django.middleware.csrf.CsrfViewMiddleware", + "django.contrib.auth.middleware.AuthenticationMiddleware", + "django.contrib.messages.middleware.MessageMiddleware", + "django.middleware.clickjacking.XFrameOptionsMiddleware", +] + +ROOT_URLCONF = "trydjango.urls" + +TEMPLATES = [ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + ], + }, + }, +] + +WSGI_APPLICATION = "trydjango.wsgi.application" + + +# Database +# https://docs.djangoproject.com/en/6.0/ref/settings/#databases + +DATABASES = { + "default": { + "ENGINE": "django.db.backends.sqlite3", + "NAME": BASE_DIR / "db.sqlite3", + } +} + + +# Password validation +# https://docs.djangoproject.com/en/6.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/6.0/topics/i18n/ + +LANGUAGE_CODE = "en-us" + +TIME_ZONE = "UTC" + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/6.0/howto/static-files/ + +STATIC_URL = "static/" diff --git a/src/trydjango/urls.py b/src/trydjango/urls.py new file mode 100644 index 00000000000..e5efabd2f87 --- /dev/null +++ b/src/trydjango/urls.py @@ -0,0 +1,23 @@ +""" +URL configuration for trydjango project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/6.0/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 + +urlpatterns = [ + path("admin/", admin.site.urls), +] diff --git a/src/trydjango/wsgi.py b/src/trydjango/wsgi.py new file mode 100644 index 00000000000..5252df5e075 --- /dev/null +++ b/src/trydjango/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for trydjango project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/6.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trydjango.settings") + +application = get_wsgi_application() From ece3feb85c7df07188772cf9a8465e7bbb6d8ac2 Mon Sep 17 00:00:00 2001 From: Clarence Maor Barzilay Date: Mon, 22 Dec 2025 07:54:41 +0000 Subject: [PATCH 2/3] Changed Product Model to include Features field --- .../__pycache__/__init__.cpython-312.pyc | Bin 143 -> 143 bytes src/product/__pycache__/admin.cpython-312.pyc | Bin 321 -> 321 bytes src/product/__pycache__/apps.cpython-312.pyc | Bin 390 -> 390 bytes .../__pycache__/models.cpython-312.pyc | Bin 766 -> 868 bytes .../__pycache__/0001_initial.cpython-312.pyc | Bin 1193 -> 1193 bytes ...0002_alter_product_summary.cpython-312.pyc | Bin 701 -> 701 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 154 -> 154 bytes src/product/models.py | 3 ++- .../__pycache__/__init__.cpython-312.pyc | Bin 145 -> 145 bytes .../__pycache__/settings.cpython-312.pyc | Bin 2430 -> 2430 bytes .../__pycache__/urls.cpython-312.pyc | Bin 1014 -> 1014 bytes .../__pycache__/wsgi.cpython-312.pyc | Bin 637 -> 637 bytes 12 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/product/__pycache__/__init__.cpython-312.pyc b/src/product/__pycache__/__init__.cpython-312.pyc index 610c8890ef8891280354402607f78c6828bb5973..4c4cdceb5d15b2d434d2bdc542415dedd383ebfc 100644 GIT binary patch delta 18 YcmeBY>}TXU&CAQh00ivcCUUg`043oBHvj+t delta 18 YcmeBY>}TXU&CAQh00i?sOyp_>04Tf!$N&HU diff --git a/src/product/__pycache__/admin.cpython-312.pyc b/src/product/__pycache__/admin.cpython-312.pyc index eb318916ac8cd28dd5b47aae564392a748bc713d..d5833846cc3e35334ef77d764afad2ce7d6714cd 100644 GIT binary patch delta 19 ZcmX@ebdZVbG%qg~0}!x(+sI|k2mmoB1aJTV delta 19 ZcmX@ebdZVbG%qg~0}wp^xRJ}85dbze1xEk? diff --git a/src/product/__pycache__/apps.cpython-312.pyc b/src/product/__pycache__/apps.cpython-312.pyc index ec59f45e88b9806c1f1415142c5365fc775e3264..2f650e8c3cf8772eda43e437c6fa252cba919a83 100644 GIT binary patch delta 19 ZcmZo;Ze!*;&CAQh00ivcHgeT40stw81VI1* delta 19 ZcmZo;Ze!*;&CAQh00i?sY~-q81OP1a1kwNi diff --git a/src/product/__pycache__/models.cpython-312.pyc b/src/product/__pycache__/models.cpython-312.pyc index 1d63495dcc5743aeac109fc0853ab23ef50c5cc2..d39ec4f49d9933c9bce55da3a6353e7792920be0 100644 GIT binary patch delta 246 zcmeyz`h<=5G%qg~0}$N(;gMNAk++WV!o;50Rw*1Q9BWusGl66n7^1kC7*d(D#2`Fm zGKF~!=W0fXNEA;cmnQdQQ^pW}H%-P{>?x^fiKRIueww_Kdl(BPZt*zf=jWs*=DB62 z=A_)>NJ~vDDJ@DZp8S{5g)wQe6O)(h3egRrSA?t^+;0e}PEflpq&4m zBI(JKnKYcGfL0Yrg9sTQ@r%PIH$SB`C)KV<9>@i`qgVn+d|+l|WW38D^M#F-(WE1- OKc_S2D+7=T)(HSVGC!sO delta 143 zcmaFD_K%hKG%qg~0}!Ns@yIlo$Xmy_WMa>3zSSThAc*3sd4pdwu0U{)U#4iq;-29Z%oK(9a86cMth>Jmz eAD9^#8SgU4d|_i@RP9LX&*{wh$^c}7bpiltsv{); diff --git a/src/product/migrations/__pycache__/0001_initial.cpython-312.pyc b/src/product/migrations/__pycache__/0001_initial.cpython-312.pyc index 5ee22d087e921599d731fcfb4193b55fd309902c..c829915ef51f5308ebfcb8ab575925e8f362a018 100644 GIT binary patch delta 19 ZcmZ3*~m4Y1pqMq1or>{ diff --git a/src/product/migrations/__pycache__/0002_alter_product_summary.cpython-312.pyc b/src/product/migrations/__pycache__/0002_alter_product_summary.cpython-312.pyc index 888c8ddf3a67c0123913cfd4937cec25913a6622..979736b2fdca71f4d0fa92e534e250749db97f09 100644 GIT binary patch delta 19 ZcmdnXx|fyfG%qg~0}!x(+sL(<2>>zn1nU3* delta 19 ZcmdnXx|fyfG%qg~0}vE^*~qn-2>>)=1yTS2 diff --git a/src/product/migrations/__pycache__/__init__.cpython-312.pyc b/src/product/migrations/__pycache__/__init__.cpython-312.pyc index d028235acf2be20ebed39460e23f7e2ecb604f48..2245c148141c18cb4298034b376c6373b3c963a4 100644 GIT binary patch delta 18 YcmbQmIE#_%G%qg~0}!x(o5(c*04HJuSO5S3 delta 18 YcmbQmIE#_%G%qg~0}#ynFp+Bl04hBM=>Px# diff --git a/src/product/models.py b/src/product/models.py index e46b0cf06e1..5ffe936b704 100644 --- a/src/product/models.py +++ b/src/product/models.py @@ -5,4 +5,5 @@ class Product(models.Model): title = models.CharField(max_length=120) description = models.TextField(blank=True, null=True) price = models.DecimalField(decimal_places=2, max_digits=1000) - summary = models.TextField() \ No newline at end of file + summary = models.TextField(blank=False, null=False) + features = models.BooleanField(default=True) \ No newline at end of file diff --git a/src/trydjango/__pycache__/__init__.cpython-312.pyc b/src/trydjango/__pycache__/__init__.cpython-312.pyc index 9d067260d0ddf55610884be48522c5f175d24258..2358a75256d67fa288b517fe86ae6f34602c5f24 100644 GIT binary patch delta 19 ZcmbQpIFXV2G%qg~0}!x(^O(rp1^_B@1cm?r delta 19 ZcmbQpIFXV2G%qg~0}yPT>pqdY4FD{~1lj-q diff --git a/src/trydjango/__pycache__/settings.cpython-312.pyc b/src/trydjango/__pycache__/settings.cpython-312.pyc index 62109382312ae2560167d82b993a6ede834faed3..5d08c950c96ba45e2091270949db3b61b01d4e29 100644 GIT binary patch delta 19 Zcmew-^iPQEG%qg~0}!x(+sIYI2>?7@1y29~ delta 19 Zcmew-^iPQEG%qg~0}v>F+{jhJ2>?9c1!MpK diff --git a/src/trydjango/__pycache__/urls.cpython-312.pyc b/src/trydjango/__pycache__/urls.cpython-312.pyc index 07e0543dfbd7aaac33bed0e98c947db8b8d624d0..3badf168ebc7a58f865c052060a332ec4dd21c0b 100644 GIT binary patch delta 20 acmeyy{*9gcG%qg~0}!x(^VrD!ni&8<8wKP5 delta 20 acmeyy{*9gcG%qg~0}yPR>%NiuH8TK0$p$$9 diff --git a/src/trydjango/__pycache__/wsgi.cpython-312.pyc b/src/trydjango/__pycache__/wsgi.cpython-312.pyc index 6d18466f0bc2aced332e0e065f6e511540d5403d..4e3309962d2bdb58479a134ac92b54051cb8fa5d 100644 GIT binary patch delta 20 acmey%@|T7CG%qg~0}!x(^VrB;!~_68#szW! delta 20 acmey%@|T7CG%qg~0}yPR>%Nh@hzS5fbOpx% From 20b028cab9ce18d57ec12d42b5d5022cdb9338a4 Mon Sep 17 00:00:00 2001 From: Clarence Maor Barzilay Date: Mon, 22 Dec 2025 08:02:50 +0000 Subject: [PATCH 3/3] Finished Hello World App --- src/db.sqlite3 | Bin 139264 -> 139264 bytes src/pages/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 141 bytes src/pages/__pycache__/views.cpython-312.pyc | Bin 0 -> 405 bytes src/pages/admin.py | 3 +++ src/pages/apps.py | 5 +++++ src/pages/migrations/__init__.py | 0 src/pages/models.py | 3 +++ src/pages/tests.py | 3 +++ src/pages/views.py | 6 ++++++ .../migrations/0003_product_features.py | 18 ++++++++++++++++++ .../0003_product_features.cpython-312.pyc | Bin 0 -> 730 bytes .../__pycache__/urls.cpython-312.pyc | Bin 1014 -> 1108 bytes src/trydjango/urls.py | 2 ++ 14 files changed, 40 insertions(+) create mode 100644 src/pages/__init__.py create mode 100644 src/pages/__pycache__/__init__.cpython-312.pyc create mode 100644 src/pages/__pycache__/views.cpython-312.pyc create mode 100644 src/pages/admin.py create mode 100644 src/pages/apps.py create mode 100644 src/pages/migrations/__init__.py create mode 100644 src/pages/models.py create mode 100644 src/pages/tests.py create mode 100644 src/pages/views.py create mode 100644 src/product/migrations/0003_product_features.py create mode 100644 src/product/migrations/__pycache__/0003_product_features.cpython-312.pyc diff --git a/src/db.sqlite3 b/src/db.sqlite3 index 7678aeec521eff31505a19b6ad302c5809899823..c37cae3d1ec08a1dc15267a659f126d2cbff9baf 100644 GIT binary patch delta 260 zcmZoTz|nAkV}i7xIs*fP5)?B6X~&5=#*FG46PEBZi*n7K%r2nG#5H$gV>XwqwJ0lt zw7FwJQGQBka*2U~fpI*P9iNt(SW;S)T5M!sWU6auq-$iPU|?=#YGGw$p=WMlVr*ct z`IeLoD-*xx#zrrGCLx~5Df+V+MHd+)EIJ^tX#wK_CdS*-nG+ZlS@{0)z1yylz_^)_ zh3h%P%ZZIo*$nmA#9ig5PfTW%-Tpj@k%@zeMQmfE5DQlmg9*F1wl-t4`ShoWjLM8$ v(>aqEcgg4|D8byLq>z-KpQGUCAEMwF>f@uywVCn3fB$6%7y}jyHV6O!ViQU+ delta 162 zcmZoTz|nAkV}i7x8Uq7^5)g9%F(VM$P1G@FRNI)agr8Z2>(*p;0nLq#tGG7blCojl z*yzL0B*Z;AMSnJ<$RdM;?E(T!ANVIu5ZJVU@cfFGx%W3dYB0=4F<|$LkeT{^GF7%}*)KNwq6t1!`sl;$jfv NBQql-V-Yiu1pr}YAiDqn literal 0 HcmV?d00001 diff --git a/src/pages/__pycache__/views.cpython-312.pyc b/src/pages/__pycache__/views.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..424407a0045b1b1fa2e40e1e5695bf37ffbd9b8f GIT binary patch literal 405 zcmXv~u}%U(5Z$>uh;X75CQ=f$xrWuAP*G4(XkkKQF1H&FxnnQ0hXgAN|AB8HmVSl} ziQPsjD?5|xsGPl=lgyhpFL^IJ`_XDO8CCNzn!VHfw#$Dx6)7%=Y?xpI5|+XQz;Y*X zQg`AKcVF4WTYEw6#~QX^jz@W(-AbLQg_Z%BI?9ER7*%=Ya0ySTiw?nt(cQD DVsKx3 literal 0 HcmV?d00001 diff --git a/src/pages/admin.py b/src/pages/admin.py new file mode 100644 index 00000000000..8c38f3f3dad --- /dev/null +++ b/src/pages/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/src/pages/apps.py b/src/pages/apps.py new file mode 100644 index 00000000000..344e0f0cf68 --- /dev/null +++ b/src/pages/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class PagesConfig(AppConfig): + name = "pages" diff --git a/src/pages/migrations/__init__.py b/src/pages/migrations/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/pages/models.py b/src/pages/models.py new file mode 100644 index 00000000000..71a83623907 --- /dev/null +++ b/src/pages/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/src/pages/tests.py b/src/pages/tests.py new file mode 100644 index 00000000000..7ce503c2dd9 --- /dev/null +++ b/src/pages/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/src/pages/views.py b/src/pages/views.py new file mode 100644 index 00000000000..86aea120381 --- /dev/null +++ b/src/pages/views.py @@ -0,0 +1,6 @@ +from django.http import HttpResponse +from django.shortcuts import render + +# Create your views here. +def home_view(*args, **kwargs): + return HttpResponse("

Hello World

") \ No newline at end of file diff --git a/src/product/migrations/0003_product_features.py b/src/product/migrations/0003_product_features.py new file mode 100644 index 00000000000..ca4a3daad9b --- /dev/null +++ b/src/product/migrations/0003_product_features.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0 on 2025-12-22 07:58 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("product", "0002_alter_product_summary"), + ] + + operations = [ + migrations.AddField( + model_name="product", + name="features", + field=models.BooleanField(default=True), + ), + ] diff --git a/src/product/migrations/__pycache__/0003_product_features.cpython-312.pyc b/src/product/migrations/__pycache__/0003_product_features.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..76e84c4d627fd6273be045dbd85c64a9ea82f682 GIT binary patch literal 730 zcmY*WO>fgc5S_K1^@mc_MuiH}14s>$FLl&jOC?ZM5Q3gK`LY=ACQ9%}SldFmfm9)m zz4b4E+JC|+5>leQa^e;#MMycZ>(~V5Fn(`#X8qpmw~Y-4WIR|t8+<|lKNP8>QGvy= z1eZX8q6lK-qgeAb1R6XAs+|MX85-hxX#Ks?SJ>CbhTHh5h^q-F9`t#T57HzPI8G^x zvT!{EU{+-DT7pYp;3EpYMo}O6x(3V`mV*Bs0V#v3Gd#TYe_b(ZTsN+yH5J#m7A0@9 z#-?it`(>?1iZe$%rA3&Fd);pLfCN#_IH_tRE8;ldW3ChmtH*-8;4FLPB4JY23yLUr zb!ksoB1sT4VU)Si8?cC;xwf!KStmp|gvh=kViGqAc~=CH>Q#)g5lbjb!U4;;+Muu= zQ+lfI;D(~jCuth7ASp}2Nk^<&=T}(Bb6B2w?^FIZ8wDZDypv&&^wSd-r(VWGukzxp zAHkDO5C3|sUG0y?Ts>)-6v!UQbPjV2_Q71&w(*A-a|i6*&(73pPptNA=l*P~J!^F? z9!^`GNvrdPes3M#n1=1lb=<-qpYuEQeP^yAY+4H2r*BG=rM1-`Z>zSlcSoY7b+p>l kF~2LRddF;6rn!y~`i%j(H@J!Lg)`mUn{4j=0!hm0Kk6y8xc~qF literal 0 HcmV?d00001 diff --git a/src/trydjango/__pycache__/urls.cpython-312.pyc b/src/trydjango/__pycache__/urls.cpython-312.pyc index 3badf168ebc7a58f865c052060a332ec4dd21c0b..2392eb4d477e18009008c964e35eb8f223c1ff66 100644 GIT binary patch delta 275 zcmeyyeuYE*G%qg~0}u%P_Q-T)W?*;>;=lkKl<~P{qPk*23S$aO4r?x36dNN06GJLX z3TrA;79UJ4g3b~^uwks#Ob`}WA6qJ03i}$4)j;b&Ae||SvyxMjYh%Z3CJjx-TbvpB zxvBAGnW^PfY>6qknR)uR7;dqE1c8z)d5O8Hewtj9^_UI$xC;`~Q;YRLN{fqFCr2~K za0vqqWCY@3o5=^6MfLA8D1KyPVCC$Pm|!~HYNFM2`-%3KS(I