0% found this document useful (0 votes)
13 views10 pages

Django3 BuildingDataModel1

Uploaded by

Alaa Faisal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views10 pages

Django3 BuildingDataModel1

Uploaded by

Alaa Faisal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Building a Data

Model
Models in Django

• Storing data in a database is a common practice in


most web applications.
• In Django data and tables are represented in
models.
• A model contains the field and behaviors of the
data
• Commonly, each model maps to a database table.
• By creating models in the app [Link] module,
Django automatically create database tables for
these models.

2
StoreProject Data Model 0 .. 1
featured_product
Product
Cart Category
title
* * 1
description *
created_at name
price products
inventory
1
1 1
*
CartItem *
* *
quantity OrderItem

quantity

Customer *
*
Order
name 1 *
email
placed_at 1
birth_date

3
StoreProject Data Model 0 .. 1
featured_product
Product
Cart Category
title
description * 1
created_at name
price products
inventory
1
1 1
CartItem *
* *
quantity OrderItem

quantity

Customer *

Order
name 1 *
email
placed_at 1
birth_date

4
The store APP

• When deciding to put the models in which app we need


to consider:
• Apps should be highly focused (models are cohesion)
• minimal coupling between the apps
• In our case we only need one app, let’s create it:
• In VSCode terminal:
python [Link] startapp store
• add the new app to the list of INSTALLED_APPS in project
settings

5
Django Model Basics

• Each model is a class that extends (inherits)


[Link]
• Each model attribute represents a database column (field)
• Django provides us with a set of useful methods to create,
update, read, and delete (CRUD) model information from
the database
• You can define custom methods on a model to add custom
“row-level” functionality to your objects.
• Manager methods are intended to do “table-wide” things,
model methods should act on a particular model instance.

6 [Link]
Creating Models

• Open the [Link] module in the app folder.


• Write a class for each model describing the attributes of
the class. Example:

• For different field types and their options, check:


[Link]
7
Exercise

Create class Customer with these fields:


• first_name
• last_name
• email (unique)
• phone
• birth_date (nullable)

8
Choice Fields

Sometimes we want the field values to be limited to specific values.


• Define a constant variable that is a list of tuples.
• Each tuple is a pair of two values. The first value is the actual value to be
used in the model, and the second value is a human-readable name.
• Define your field and set the choices option to the constant list.

9
Exercise

Create class Order with these fields:


• placed_at (datetime – auto populated at creation time)
• payment_status – Char field with these values:
• P = Pending
• C = Complete
• F = Failed

10

You might also like