Extending Project Zero
Django App or Package: Understanding Its Function
Django applications are parts of a django project. When developing a project, the project is divided into meaningful parts and the app is created for each part so that the complexity within the project is minimized and these parts of the application can be reused. You can follow the steps below to create a Django application.
Go to the project directory and run the following line of code.
$ python manage.py startapp demo
We created our application with the line of code that was run. Now let's examine the structure of the created application.
demo/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
Init.py: The init file is a file that indicates that the folder it belongs to is a python module.
Admin.py: Admin file is the file containing the settings related to the management panel. When we create a model, we use this file to provide the management interface of the model.
App.py: App file is the file containing the settings related to the application.
Models.py: The models file is the layer where we create database objects and query.
Test.py: This is a file used for testing.
Views.py: The views file is the file in which we will write python functions related to views.
Migrations Directory: This folder is the folder that will hold the database structure of the application.
Apps in Project Zero
In Project Zero, we can add new features to the project by including packages such as pz_otp, pz_click_and_collect, pz_list_variants, pz_pay_on_delivery. You can examine these packages in detail from the links below.
Click and collect
This app enables retail store delivery option.
List variants
OTP
This app enables SMS verification (OTP) support for desired actions, such as registration and updating profile information.
Pay on delivery
A library module for enabling "Pay On Delivery" payment module at order/payment step.
It doesn't work in projects where the "Pay On Delivery" feature is not active.
Delete And Add To Favourites
When the user wants to delete a product on the cart page, this package prompts the user to add the product to favorite products by popping up a dialog.
Installing Apps
Installing each package may differ. How to install the package is explained in detail in Git repositories. As an example, the installation of the Pz otp package and its use in the project are shown below.
Create a file named requirements.txt in the project directory and add the following line to this file.
-e git+ssh://git@[bitbucket.org/akinonteam/pz_otp.git@15f3121#egg=pz_otp](http://bitbucket.org/akinonteam/pz_otp.git@15f3121#egg=pz_otp)
Then run the command below to install the package.
in venv
pip install -r requirements.txt
Install the npm package.
in /templates
yarn add git+ssh://git@bitbucket.org:akinonteam/pz_otp.git#15f3121
Add to the project.
omnife_base/settings.py
INSTALLED_APPS.append('pz_otp')
Add it to the HTML file you want to use.
{% from 'pz_otp/index.html' import OTPModal %}
{{ OTPModal() }}
Add and initialize in javascript file.
import PzOTP from 'pz_otp';
// ...
new PzOTP({
formSelector: '.js-otp-form'
});
Import styles.
@import "~pz_otp/";