Skip to main content

A simple Django app that provides Indonesian Bank models and fields.

Project description

A Django application that provides Indonesian bank choices for use with forms and a country field for models.

Installation

  1. Run pip install p1-bank

  2. Add 'bank' to INSTALLED_APPS in settings.py

  3. Run python manage.py migrate to create banks models

Bank Model

A model of bank that holds all banks in Indonesia.

Supports long name, short name, bank code, and branch code.

>>> from django.apps import apps
>>> Bank = apps.get_model('bank', 'Bank')
>>> bank = Bank.objects.get(short_name='BANK BCA')
>>> bank.long_name
u'PT. BANK CENTRAL ASIA TBK.'
>>> bank.short_name
u'BANK BCA'
>>> bank.bank_code
u'014'
>>> bank.branch_code
u'0397'
>>> bank.bi_code
u'0140397'

It is possible to get a bank object from bi code:

>>> Bank.objects.get_by_bi_code('0140397')
<Bank: BANK BCA>

or upsert (update or create) from list with header:

>>> Bank.objects.get(bank_code='200')
<Bank: BANK BTN>
>>> bank_list = [
        ['bank_code', 'short_name'],
        ['200', 'BTN']
    ]
>>> Bank.objects.upsert_from_list_with_header(bank_list)
>>> Bank.objects.get(bank_code='200')
<Bank: BTN>

Bank Field

BankField is based on Django’s ForeignKey, a relationship to Bank model.

Consider an Account model using a BankField:

from django.db import models
from p1_bank.fields import BankField

class Account(models.Model):
    name = models.CharField(max_length=100)
    bank = BankField(related_name='accounts')

Any Account instance will have a bank attribute that you can use to identify account’s bank:

>>> bank = Bank.objects.get(short_name='BANK BCA')
>>> account = Account.objects.create(name='Kania', bank=bank)
>>> account.bank
'BANK BCA'
>>> account.bank.code
'014'

Bank Factories

You may use bank factories to support your test (requires factory_boy)

>>> from bank.factories import BankFactory
>>> BankFactory()
<Bank: Bank X00>
>>> BankFactory()
<Bank: Bank X01>
>>> bank301 = BankFactory(bank_code='301')
>>> bank301.bank_code
'301'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

p1_bank-0.5.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

p1_bank-0.5.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file p1_bank-0.5.0.tar.gz.

File metadata

  • Download URL: p1_bank-0.5.0.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for p1_bank-0.5.0.tar.gz
Algorithm Hash digest
SHA256 dab6d98dcb29aa1585b13d06707efa730e9f019a793047118f663c9065a1a37c
MD5 6bd0aa4e9fe28e091a733a2d57d15a6a
BLAKE2b-256 f34e9837ec14fd0123e30fb6cd677c3cb92746e8e0606c94617b6c67fe6b7ae9

See more details on using hashes here.

File details

Details for the file p1_bank-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: p1_bank-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for p1_bank-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 306f7456bdc447581893887e5c01e2ab429b8ae7e70b53f9f44a71cf14c056af
MD5 4efcb9622fbc4134eebf11b9275bd63d
BLAKE2b-256 3c68571b1f01104cf2aee426ed993901bc2cc37f20c240fcbeb394c3f2e4fb4c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page