From eeb78dbe36249e336d2f71ce5e4fddbf19d88f4c Mon Sep 17 00:00:00 2001 From: Bo Liu <64301505+bo2020bo@users.noreply.github.com> Date: Fri, 25 Oct 2024 08:10:18 +0000 Subject: [PATCH] Add src directory with manage.py and other necessary files --- dev/trydjango/src/db.sqlite3 | Bin 0 -> 139264 bytes dev/trydjango/src/leodjango/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 153 bytes .../__pycache__/settings.cpython-38.pyc | Bin 0 -> 2312 bytes .../leodjango/__pycache__/urls.cpython-38.pyc | Bin 0 -> 932 bytes .../leodjango/__pycache__/wsgi.cpython-38.pyc | Bin 0 -> 560 bytes dev/trydjango/src/leodjango/settings.py | 123 ++++++++++++++++++ dev/trydjango/src/leodjango/urls.py | 21 +++ dev/trydjango/src/leodjango/wsgi.py | 16 +++ dev/trydjango/src/manage.py | 15 +++ dev/trydjango/src/products/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 152 bytes .../products/__pycache__/admin.cpython-38.pyc | Bin 0 -> 266 bytes .../__pycache__/models.cpython-38.pyc | Bin 0 -> 595 bytes dev/trydjango/src/products/admin.py | 5 + dev/trydjango/src/products/apps.py | 5 + .../src/products/migrations/0001_initial.py | 24 ++++ .../migrations/0002_auto_20241025_0643.py | 24 ++++ .../src/products/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-38.pyc | Bin 0 -> 793 bytes .../0002_auto_20241025_0643.cpython-38.pyc | Bin 0 -> 714 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 163 bytes dev/trydjango/src/products/models.py | 9 ++ dev/trydjango/src/products/tests.py | 3 + dev/trydjango/src/products/views.py | 3 + 25 files changed, 248 insertions(+) create mode 100644 dev/trydjango/src/db.sqlite3 create mode 100644 dev/trydjango/src/leodjango/__init__.py create mode 100644 dev/trydjango/src/leodjango/__pycache__/__init__.cpython-38.pyc create mode 100644 dev/trydjango/src/leodjango/__pycache__/settings.cpython-38.pyc create mode 100644 dev/trydjango/src/leodjango/__pycache__/urls.cpython-38.pyc create mode 100644 dev/trydjango/src/leodjango/__pycache__/wsgi.cpython-38.pyc create mode 100644 dev/trydjango/src/leodjango/settings.py create mode 100644 dev/trydjango/src/leodjango/urls.py create mode 100644 dev/trydjango/src/leodjango/wsgi.py create mode 100755 dev/trydjango/src/manage.py create mode 100644 dev/trydjango/src/products/__init__.py create mode 100644 dev/trydjango/src/products/__pycache__/__init__.cpython-38.pyc create mode 100644 dev/trydjango/src/products/__pycache__/admin.cpython-38.pyc create mode 100644 dev/trydjango/src/products/__pycache__/models.cpython-38.pyc create mode 100644 dev/trydjango/src/products/admin.py create mode 100644 dev/trydjango/src/products/apps.py create mode 100644 dev/trydjango/src/products/migrations/0001_initial.py create mode 100644 dev/trydjango/src/products/migrations/0002_auto_20241025_0643.py create mode 100644 dev/trydjango/src/products/migrations/__init__.py create mode 100644 dev/trydjango/src/products/migrations/__pycache__/0001_initial.cpython-38.pyc create mode 100644 dev/trydjango/src/products/migrations/__pycache__/0002_auto_20241025_0643.cpython-38.pyc create mode 100644 dev/trydjango/src/products/migrations/__pycache__/__init__.cpython-38.pyc create mode 100644 dev/trydjango/src/products/models.py create mode 100644 dev/trydjango/src/products/tests.py create mode 100644 dev/trydjango/src/products/views.py diff --git a/dev/trydjango/src/db.sqlite3 b/dev/trydjango/src/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..6ac5b1fc285b6408225edb378edddf3ea1396dfd GIT binary patch literal 139264 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 Hu?hSi#DQJb literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/leodjango/__init__.py b/dev/trydjango/src/leodjango/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/trydjango/src/leodjango/__pycache__/__init__.cpython-38.pyc b/dev/trydjango/src/leodjango/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..496fb9402c3aab98e4a614b96a136356deac4560 GIT binary patch literal 153 zcmWIL<>g`kf^~Bw(n0iN5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HWetCXTc5y*s za%!=@OIBiDdcI3)ZoYm>YMFjXQDq8PM8CKwSwAN=AIgi5&&<m#iI3MSsJz8tlbfGX Onv-e=GWRnOGXMaeswC3@ literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/leodjango/__pycache__/settings.cpython-38.pyc b/dev/trydjango/src/leodjango/__pycache__/settings.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..156e8d827b511579dee43f6131f98b5e4b365608 GIT binary patch literal 2312 zcmb7F+j7%J7?u^qc1#=s;gAAtMN5HDB0)k4bP7e-B6#XUCXz|3i)v);THZtlN4tuN zo`s8Y)#<zR33S`5zCb(eFr~j_$MHDKG?lFN>Ob$d-@j^?%Owu3yFV{G>+>A<TlzA2 z72)L>JoHx>5NB{Ghj=$<<Zy16|7m7o6!7fZTzVUMG-DKyU=$tBm_xHDj|!-W=1>Wp zaSBEW&7(3}Kxfe+I)~1K<P2Ie=FtU*Ljt;pE}_e48GYmkB!{lN5uBV+MpummbPau+ zWjl-W=##fR`t%J?a>gPO(RHvC(P!ECc{bi4IY%(gp)ZW{=%%p*wOoMbB0QJSE#orc zHE!j$CFMA-RNb|FClD!SjQ9=}yFn<rI6y;jKMZ!U&7@Lk6Z<%{7)D~}P`ou%uUg0> zzDSuBvXSL2F`^Jh9EDwz?n@is{Q{zTL5M}-LjuoYB=AM}u^xex#Km`^0$l1b)~8>~ zG74-e4Rah-U<aOzeHjAEEa(%P%10&3!|<$!#ct%fqDv?fgYNN?EFVE4OhWO%awAOt zPp%MmCldV*B;cCyn)Q{nzV^topFBS3&<CA8@_7IH&HdLK4>t~X2REJ!dOw=+AYSdR zJfYEA_uk$eOOG!M*CW}1&qC6XGVJ1|X=%iI@zp6|>Vkd74*QtKm#35zQwnIFRCu7U z9Pqd@?ZE(lJ4KxuMZgzDHly+C$jT!Kxp-iOSfbdDLc$IuZ8T|&b@7AgprbOR34d)U zoA6pWnFKc03w)`P{r!h24ZBhWhF1g+CQLV`YOw&s$vPBx2mFYg@ovI#dJ#vEO*%J* zFiv<q{J<hyV(;x*_8xFw`u;^|dAQY2NlqvH7RG%gMWIV$c@&3XukS)@NgW7)eRM>9 zshTyRK2lTTd`5)V%!Ey|p{yXJ@$Km#Cv7BzJCPILIfZ42_n|>p{N>1YOx6_94@6Fp zj@PG*$0&Zl;Yhb4B!%Zn<vX=mHH2zyTT6<{)|Q#g3au@@)@o|;m1DpL)FG19?*q=+ zCME@hyH@0~F}qRc7(cr25{B2~5(r206+X$U&COa<O@yY>P{RVWa{O|t^o%)ui_$?5 zA`^}ag0gf{o8nMmY2!u=Ys4e2m3GFfp+ykJPfr`EL44vxULE@m>mB=lds_ctqil_8 zJPz>ev;mrtheKkYj4+G+)rclDZM_l~WjNKLW8{_Pq+ptGAe&~w2Q(4-7V81}B=mvg zNx|ySOj0z>^h7aDqxf9W)O074lBQO+Ro(nf{UMpHs?Xb-Nm;4aTRUpieA&`;Em^2F zH627CfbG|kQlnO_*3}(lTTSM-TP@veZ`UiW=8I%bR~uV(MOU?CaYx&%rS|n&MM;^G z2)hCClewy*D`|2qSytNmOLI%nw4K&=)qJJYYoKfa&B}G9x!G1WRkPBnst~r;P)(x+ zv?#Wr?ArZD&Ec$m|6Vi6r!w7umFSSEl2-Ez7m7fgZ20@B3`E%j1fU(|YSyk*>;*Ey z2Qmu}hg%}k(3Zzk9)C`x{$W!5#)IS6#ZTc=%+UiFg!$skwSq7s@Is!?jqe%$PoX@1 sOXYtFB|*p}{8;{uf6u=Y-V2LDA(hSl1M@P^fmAp#{vj+uj^UmE7v5kFS^xk5 literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/leodjango/__pycache__/urls.cpython-38.pyc b/dev/trydjango/src/leodjango/__pycache__/urls.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..433649d7c7d20833a59542e754827a1628fd74a6 GIT binary patch literal 932 zcma)5F>ll`6i#xv_DHX=GJ4BJI%3)}0t9NQsDv1RF1Mt<*q6%@+mY?G94mi=KfuBd z%F4vV&H~TA9Ey;TYAKfOJb&-|zW01}d>nZ&zI}OE{tP_tyWI@O2sY2*(~n`I-om3k z4QihUi@>+*Q9a_}BJ@2L(vSt4@#f%jQ2L8QI)3LR2SfpA%_Q9rQA%|6_BA?_VpWx` zBBqieir%jox^7k75M!7U`Wn@hHb}|VFl{erWF)$&*sV^{g;a=3#ZV<yQgH`?nwk;K zkY+545RA1kjm|Kpve4-+aiiph6(%ht$4ubU^aLB(RE5Si7(;rEqn95E2P~aM7p*8P zyIoobdXl0Slp-Qf#T%(ihR{k$j`%hwP17F^;!pc{Cm93`6v9;yyPn1Iyw|msoXwFS zoIQ>0I!>aqnrQuK3Bu?A^?xj+Su<scq|T^4omYV6*x!+jjZcZrEyyhShtZ`d>Xufb z1QT37E3JTH?)|xR#vq^q<*~7BmY`K{Wwx_xSB}&gz9-qo&YdZDX1lCqiNU~qrq~`h z+&D?1AJD8`;&)?0c_m;GTE{;fxGjE@OuEB7hyKX(#r>WVC^4#9+J5!AqXAE4pFkJt z%CIi9#Ji(GF~5519{hLHuMFQx^+7kJU>cvhmOp1)V#;o?QQI9T)~djNpM>kZwApr( XCtT9DX3u<p(-WA&2UCAKn*RO+YWgDe literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/leodjango/__pycache__/wsgi.cpython-38.pyc b/dev/trydjango/src/leodjango/__pycache__/wsgi.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f3957c550afd39ff65076d26b882979a8bd33e34 GIT binary patch literal 560 zcmYjP!EO^V5cO`-CM*;oges1{MuIhPtWX6~+9(LpLs}u_vN7w)#=+}Z*>2MG%CW!D zLpgHcfAEzPzrYFauBbASXEYwoy!XbwI5<d1u%EZji<^j$-*vKU-H^Ns$G!?qkQot? zh*dO;LhPux?94h5foRpe+Y?=}_dO0-=Np;ri+D-~``5pc&(qPE=BO94pbIoq0g4sZ z1=7mk3UZew$=Ff2s?dU^ZV9w);Y#r@3MjXf(-Os{f|m-`py-+#*_1RdLD2b}SCx`E zcM|n{9_F0}oDvOCsRLx$6e#L2Tw1!23SLkPkSv|6>=9!EbDOrL{&UK)WT4rb^fg=J z#vv0>DcqKz9oyJKvgA)#2$>8b|EvI))pywr4SzWN@P0Bn%cdvi=i|v}nteJOUVJ>c zetNGzwcwo8g&p*KFUtanEb}p1|D>go=0QPP4>oat@;%UNX;AwlGzwVoOXd8-9n2rZ z)Q{P?zej9?=BurE4wem@g%6>ub*z~)+ZKXZle2q5jj*)Z`u^K?-N)fa5Ze!~`=B2` IiXX@S02aBgasU7T literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/leodjango/settings.py b/dev/trydjango/src/leodjango/settings.py new file mode 100644 index 0000000000..6f784d66be --- /dev/null +++ b/dev/trydjango/src/leodjango/settings.py @@ -0,0 +1,123 @@ +""" +Django settings for leodjango project. + +Generated by 'django-admin startproject' using Django 2.1.7. + +For more information on this file, see +https://docs.djangoproject.com/en/2.1/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/2.1/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'a5a328mc=9vbs4bki9q!&qx767yjw$=wh^_zwz-f)=su2f0k*a' + +# 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', + + #own + 'products', +] + +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 = 'leodjango.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'leodjango.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/2.1/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/2.1/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/2.1/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/2.1/howto/static-files/ + +STATIC_URL = '/static/' diff --git a/dev/trydjango/src/leodjango/urls.py b/dev/trydjango/src/leodjango/urls.py new file mode 100644 index 0000000000..ca6087b9f0 --- /dev/null +++ b/dev/trydjango/src/leodjango/urls.py @@ -0,0 +1,21 @@ +"""leodjango URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/2.1/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/dev/trydjango/src/leodjango/wsgi.py b/dev/trydjango/src/leodjango/wsgi.py new file mode 100644 index 0000000000..9f41e49c57 --- /dev/null +++ b/dev/trydjango/src/leodjango/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for leodjango 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/2.1/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'leodjango.settings') + +application = get_wsgi_application() diff --git a/dev/trydjango/src/manage.py b/dev/trydjango/src/manage.py new file mode 100755 index 0000000000..c84f827277 --- /dev/null +++ b/dev/trydjango/src/manage.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python +import os +import sys + +if __name__ == '__main__': + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'leodjango.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) diff --git a/dev/trydjango/src/products/__init__.py b/dev/trydjango/src/products/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/trydjango/src/products/__pycache__/__init__.cpython-38.pyc b/dev/trydjango/src/products/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..325c8c4e1494a19707ac59c8d8cb7d937ef42687 GIT binary patch literal 152 zcmWIL<>g`kg36^5=^*+sh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6vOzdXMvySN}R zIki~dB`Yy6J>MlYH(x&`wM@UHs4@jCqF-E;tY1)+pHiA!Qmh{zpP83g5+AQuP<e~P RCKo80lWGSt_A?MO003kyBxe8s literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/products/__pycache__/admin.cpython-38.pyc b/dev/trydjango/src/products/__pycache__/admin.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..322e6712a65ab4e4e8eb2df28087b8387b2a17b9 GIT binary patch literal 266 zcmYk0u};H442I9Sq(rD?<`Kx!+p7vObVf*sB@#o3ttcgzi|i{^-v&lTUMDM4UxA6c zWa%&2)@ND%|CiP3S_QrS+&0HBe<NH<2Y3i2ccGy|=#+&LKw*NqORO$6D1v?ZnUVgA z`}A2A**RRR0>-RD+xBOe>FS9c9%}zsEXo_)SAFBwwd*~%Z=8gaabX=&C!9t|rS&xC zOie4E_*-!v)>Hf2n4{x&8LFDZ?50mUvd$oV7|*Bqw-K(*Fk6b5lB|c*m~Vs2p`-hl KN}|<LFX11vQ$xD| literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/products/__pycache__/models.cpython-38.pyc b/dev/trydjango/src/products/__pycache__/models.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b00bf1b42eebcfaf89e4cd494a6fab36db0c0559 GIT binary patch literal 595 zcmYjP&5qPC3{IMMrk(BV4KCdF*30$*SRn)>II&uZMMAwq+1ku@HvJ)KVdf0ieTU`9 zE9J_Cc?C{5jRfl`jz8P6V>=(#>lGt9yLh(!$Qk?P!DEUEyrgZ<hyeqxS<5TV*;@t? zi0=#p@?G>zR087ntVoXJ#|rKiZ4anz?crnk7jQ#bWEBTiMJRSLaER`Cm5{suK`XwG zswJTm5?H{JP=?}R@q<+>I#1}#A*Ga=TV9zSrg}W?DJJD!wQ4UlcH8mxx`<qIqg8k3 z;%?IV7?Df!TaaJmP66wtRay>O)o8;#XtvF0FN?KHrR-FTQo5CtRL-QmoJ;w6QaV_S z59hMix5~U}P=iaxX4L4iYut}Pa{_2<(+p$NcP`(AjI*gq2Gi8&mUe1eWezTX)%O}z z7p&<gRO4h2elqif(#-77^YUwN?(E<nTyA!%+x8o5`x5X=Ihq5^n$nuO970oU876T) z91NAs`~a*UddhQtN-O2F{<4T&7OtPeO(-mR=Z83(|34u}Pbq>+FG5>h(AQzs_aYa6 E0kYhkwEzGB literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/products/admin.py b/dev/trydjango/src/products/admin.py new file mode 100644 index 0000000000..9c39fccdb2 --- /dev/null +++ b/dev/trydjango/src/products/admin.py @@ -0,0 +1,5 @@ +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/dev/trydjango/src/products/apps.py b/dev/trydjango/src/products/apps.py new file mode 100644 index 0000000000..864c43ed85 --- /dev/null +++ b/dev/trydjango/src/products/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class ProductsConfig(AppConfig): + name = 'products' diff --git a/dev/trydjango/src/products/migrations/0001_initial.py b/dev/trydjango/src/products/migrations/0001_initial.py new file mode 100644 index 0000000000..17cd0b457d --- /dev/null +++ b/dev/trydjango/src/products/migrations/0001_initial.py @@ -0,0 +1,24 @@ +# Generated by Django 2.1.7 on 2024-10-23 08:31 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Product', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=120)), + ('description', models.TextField()), + ('price', models.DecimalField(decimal_places=2, max_digits=1000)), + ('summary', models.TextField()), + ], + ), + ] diff --git a/dev/trydjango/src/products/migrations/0002_auto_20241025_0643.py b/dev/trydjango/src/products/migrations/0002_auto_20241025_0643.py new file mode 100644 index 0000000000..a0940a9496 --- /dev/null +++ b/dev/trydjango/src/products/migrations/0002_auto_20241025_0643.py @@ -0,0 +1,24 @@ +# Generated by Django 2.1.7 on 2024-10-25 06:43 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('products', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='product', + name='featured', + field=models.BooleanField(default=True), + preserve_default=False, + ), + migrations.AlterField( + model_name='product', + name='description', + field=models.TextField(blank=True, null=True), + ), + ] diff --git a/dev/trydjango/src/products/migrations/__init__.py b/dev/trydjango/src/products/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dev/trydjango/src/products/migrations/__pycache__/0001_initial.cpython-38.pyc b/dev/trydjango/src/products/migrations/__pycache__/0001_initial.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bdf9cf5698047f6ef1abd1ef673a8710f11b47bb GIT binary patch literal 793 zcmYjPOK;RL5VoD{BiU>zh(pgHA?>9pcZ7<%Dng<a5=BV4SZQXOdYf16Z0T}^>;4CN z<j$}0l?(j~AOYi~RqM#38QYofVSkuTLq_A{kFESlF!s|G_lHl#E=}`{0x;kOD|y08 zkqFLSGZ5f?W#A!ScwfB41OGjn4X)`dn+Y41D%WYN>dM$*Spya(b6fX^gWsiT78H;r z99SZNCtl7H9|wz}gTT>Z44gh61~6RvCjv&a7Qh&SHK!`X(YNr5Q8uCV2}Cf3jkTcq z!R<~yfX%hYc@n`xBKgP$2e<5w?C71YVVSj7DA>2+&3xwDC|$O-%rvGgf}J#4m8o9I zGhErgpjK(2KBJ8;P#@O@WtEm_2d!!gyuKtYGfw)`OIcu*x2JXjXfmxD=Y}0nvkb4v zaHf8FomU%x837csDbfs0|1YRqwZ@LjvUJ#Fso%j2PZSnl4rfz4mL0N`Hk6V)UKU7s zB<1-sE!<(MMygUR@wE|PgB4(vDKy%_+sR%h@W9=UCMwJZuSoa41F*r~X{vA1BfM<; zG@AER`zov(yt(A>Oh2IxUHJVr{#5HT(>OKpe34dpJ;$<+0WacKub^9rjn3kx_uj;J z&n4d3*?BH+Xm2+w?cU*#rrDw}7QXO(p9}GrZ}5<B^6-!N>;LOc9n#eWefMoR?nHLF Zy3IR&efE^P+3}0sx0g=7ajtB7{{fQY;==#{ literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/products/migrations/__pycache__/0002_auto_20241025_0643.cpython-38.pyc b/dev/trydjango/src/products/migrations/__pycache__/0002_auto_20241025_0643.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..28caf7c4be400f05d10e46280c3465c4123c6920 GIT binary patch literal 714 zcmYjPO>fjN5VaF$H=9kRo+)RfaA?w{a6(m!s^vs46d~nerJ3m}Tjv8iDfA52{UQ7% zUpes;Kp+@rw`wPvr<rHRGxO{ZdwUThdwz1TT6&EAaLHp6l$?^AX9U22D^~NI*Iw>% z_LhMM{x=3b^0oif&wUW@SrYuDy)5x;R97oq^i|s!JE>bhWlFd7*g{H9$<2}gS<Zpw z9`F^<eH81!6~M`Q3Ic)+hY3tKg7}d5koXz#0%jWzqK&`u@(AYCKx}94?kiIpVW(Rd z%HG&G%d#U`HC0~~%1(E@4X?522aRx<a61LOE(X;v6F~#Gre#yqXvK)Zb%hG-ey7o( zzD2p)ZRdcd)K%xErJBK&Dw-SmX;3QhwG&y-9mE6|$=rr=JXT5@Nl9e}g%rn9ei{np zO1TWM!v?S^D>Ry}huQE9VCh=WzDwgbZL6?oM#@HKsz<$zXP5Y;-_dP{yKDH)^b^;G zgWn(1&#k^OT~VS*&(}q>YR|E5Q^4D_*LN^7snKP6FJSs`p(#nZkj2oqa*-{LkFv!} znY}uGaoF8y_h=^M<|#qwd;dfrxJO^ay+2~IjpM)K*SPb7gr04S9m3T(<~ZEA_|Wb) TI-nD6_<AeYiPOM1UH1L|E6Bhs literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/products/migrations/__pycache__/__init__.cpython-38.pyc b/dev/trydjango/src/products/migrations/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9aa969ab23f056d4bdb222b4ccd227a6cbc0159d GIT binary patch literal 163 zcmWIL<>g`kg36^5=^*+sh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6v5zdXMvySN}R zIki~dB`Yy6J>MlYH(x&`wM@UHs4@jCqF-E;tY1)+pHiA!QmmhwnO>Awl9``ZtREkr cnU`4-AFo$Xd5gm)7pNd7)edCCXCP((05p^+-T(jq literal 0 HcmV?d00001 diff --git a/dev/trydjango/src/products/models.py b/dev/trydjango/src/products/models.py new file mode 100644 index 0000000000..614ea3768f --- /dev/null +++ b/dev/trydjango/src/products/models.py @@ -0,0 +1,9 @@ +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() + featured = models.BooleanField() \ No newline at end of file diff --git a/dev/trydjango/src/products/tests.py b/dev/trydjango/src/products/tests.py new file mode 100644 index 0000000000..7ce503c2dd --- /dev/null +++ b/dev/trydjango/src/products/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/dev/trydjango/src/products/views.py b/dev/trydjango/src/products/views.py new file mode 100644 index 0000000000..91ea44a218 --- /dev/null +++ b/dev/trydjango/src/products/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.