Skip to main content

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.

Click here for details.

List variants​

Click here for details.

OTP

​This app enables SMS verification (OTP) support for desired actions, such as registration and updating profile information.

Click here for details.

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.

Click here for details.

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.

Click here for details.

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/";