05 – STOCK MANAGEMENT SYSTEM – CUSTOMIZE THE ADMIN PORTAL FOR BETTER DATA VIEWING

Spread the love

1. Create a forms.py module in stockmgmgt app folder

2. In the form.py module, import django model form
from django import forms
In the same form.py module, import the Stock model from model.py
from .models import Stock

3. Create a model form in forms.py. Name the form StockCreateform as shown below

class StockCreateForm(forms.ModelForm):
   class Meta:
     model = Stock
     fields = ['category', 'item_name', 'quantity']

4. In admin.py, import the StockCreateForm created in step 3 above
from .forms import StockCreateForm

Next, create a class, name it StockCreateAdmi, with list_display, form, list_filter, and search_field as shown below.

class StockCreateAdmin(admin.ModelAdmin):
   list_display = ['category', 'item_name', 'quantity']
   form = StockCreateForm
   list_filter = ['category']
   search_fields = ['category', 'item_name']

5. Modify your registration to apply the customization as below.

admin.site.register(Stock, StockCreateAdmin)


Spread the love

About the author

arbadjie

Hi, I'm Abdourahman Badjie, an aspiring developer with obsession for anything coding and networking. This blog is dedicated to helping people learn to develop web applications using django framework.

View all posts

11 Comments

  • PS C:\Users\supunf\Desktop\DJANGO\STOCK MANAGMENT SYSTEM\src> python manage.py runserver
    Watching for file changes with StatReloader
    Exception in thread django-main-thread:
    Traceback (most recent call last):
    File “C:\Python39\lib\threading.py”, line 950, in _bootstrap_inner
    self.run()
    File “C:\Python39\lib\threading.py”, line 888, in run
    self._target(*self._args, **self._kwargs)
    File “C:\Python39\lib\site-packages\django\utils\autoreload.py”, line 64, in wrapper
    fn(*args, **kwargs)
    File “C:\Python39\lib\site-packages\django\core\management\commands\runserver.py”, line 110, in inner_run
    autoreload.raise_last_exception()
    File “C:\Python39\lib\site-packages\django\utils\autoreload.py”, line 87, in raise_last_exception
    raise _exception[1]
    File “C:\Python39\lib\site-packages\django\core\management\__init__.py”, line 375, in execute
    autoreload.check_errors(django.setup)()
    File “C:\Python39\lib\site-packages\django\utils\autoreload.py”, line 64, in wrapper
    fn(*args, **kwargs)
    File “C:\Python39\lib\site-packages\django\__init__.py”, line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
    File “C:\Python39\lib\site-packages\django\apps\registry.py”, line 122, in populate
    app_config.ready()
    File “C:\Python39\lib\site-packages\django\contrib\admin\apps.py”, line 27, in ready
    self.module.autodiscover()
    File “C:\Python39\lib\site-packages\django\contrib\admin\__init__.py”, line 24, in autodiscover
    autodiscover_modules(‘admin’, register_to=site)
    File “C:\Python39\lib\site-packages\django\utils\module_loading.py”, line 47, in autodiscover_modules
    import_module(‘%s.%s’ % (app_config.name, module_to_search))
    File “C:\Python39\lib\importlib\__init__.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “”, line 1030, in _gcd_import
    File “”, line 1007, in _find_and_load
    File “”, line 986, in _find_and_load_unlocked
    File “”, line 680, in _load_unlocked
    File “”, line 790, in exec_module
    File “”, line 228, in _call_with_frames_removed
    File “C:\Users\supunf\Desktop\DJANGO\STOCK MANAGMENT SYSTEM\src\stockmgmt\admin.py”, line 2, in
    from .forms import StockCreateForm
    ModuleNotFoundError: No module named ‘stockmgmt.forms’

  • ModuleNotFoundError: No module named ‘models’
    My Code in admin.py
    from django.contrib import admin
    from .forms import StockCreateForm

    from .models import Stock

    class StockCreateAdmin(admin.ModelAdmin):
    list_display = [‘category’, ‘item_name’, ‘quantity’]
    form = StockCreateForm
    # list_filter = [‘category’]
    # search_fields = [‘category’, ‘item_name’]

    admin.site.register(Stock, StockCreateAdmin)

    my code in models.py
    from django.db import models

    # Create your models here.
    class Stock(models.Model):

    category = models.CharField(max_length=50, blank=True, null=True)
    item_name = models.CharField(max_length=50, blank=True, null=True)
    quantity = models.IntegerField(default=’0′, blank=True, null=True)
    receive_quantity = models.IntegerField(default=’0′, blank=True, null=True)
    receive_by = models.CharField(max_length=50, blank=True, null=True)
    issue_quantity = models.IntegerField(default=’0′, blank=True, null=True)
    issue_by = models.CharField(max_length=50, blank=True, null=True)
    issue_to = models.CharField(max_length=50, blank=True, null=True)
    phone_number = models.CharField(max_length=50, blank=True, null=True)
    created_by = models.CharField(max_length=50, blank=True, null=True)
    reorder_level = models.IntegerField(default=’0′, blank=True, null=True)
    last_updated = models.DateTimeField(auto_now_add=False, auto_now=True)
    export_to_CSV = models.BooleanField(default=False)

    def __str__(self):
    return self.item_name

    • your admin file should be formated in this order:

      from django.contrib import admin
      from .forms import StockCreateForm

      from .models import Stock

      class StockCreateAdmin(admin.ModelAdmin):
      list_display = [‘category’, ‘item_name’, ‘quantity’]
      form = StockCreateForm
      list_filter = [‘category’]
      search_fields = [‘category’, ‘item_name’]

      admin.site.register(Stock, StockCreateAdmin)

  • i have a problem
    Watching for file changes with StatReloader
    Exception in thread Thread-1:
    Traceback (most recent call last):
    File “/usr/lib/python3.5/threading.py”, line 914, in _bootstrap_inner
    self.run()
    File “/usr/lib/python3.5/threading.py”, line 862, in run
    self._target(*self._args, **self._kwargs)
    File “/home/thierry/Documents/delas_env/venv/lib/python3.5/site-packages/django/utils/autoreload.py”, line 54, in wrapper
    fn(*args, **kwargs)
    File “/home/thierry/Documents/delas_env/venv/lib/python3.5/site-packages/django/core/management/commands/runserver.py”, line 109, in inner_run
    autoreload.raise_last_exception()
    File “/home/thierry/Documents/delas_env/venv/lib/python3.5/site-packages/django/utils/autoreload.py”, line 77, in raise_last_exception
    raise _exception[0](_exception[1]).with_traceback(_exception[2])
    File “/home/thierry/Documents/delas_env/venv/lib/python3.5/site-packages/django/utils/autoreload.py”, line 54, in wrapper
    fn(*args, **kwargs)
    File “/home/thierry/Documents/delas_env/venv/lib/python3.5/site-packages/django/__init__.py”, line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
    File “/home/thierry/Documents/delas_env/venv/lib/python3.5/site-packages/django/apps/registry.py”, line 122, in populate
    app_config.ready()
    File “/home/thierry/Documents/delas_env/venv/lib/python3.5/site-packages/django/contrib/admin/apps.py”, line 24, in ready
    self.module.autodiscover()
    File “/home/thierry/Documents/delas_env/venv/lib/python3.5/site-packages/django/contrib/admin/__init__.py”, line 26, in autodiscover
    autodiscover_modules(‘admin’, register_to=site)
    File “/home/thierry/Documents/delas_env/venv/lib/python3.5/site-packages/django/utils/module_loading.py”, line 47, in autodiscover_modules
    import_module(‘%s.%s’ % (app_config.name, module_to_search))
    File “/usr/lib/python3.5/importlib/__init__.py”, line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “”, line 986, in _gcd_import
    File “”, line 969, in _find_and_load
    File “”, line 958, in _find_and_load_unlocked
    File “”, line 673, in _load_unlocked
    File “”, line 665, in exec_module
    File “”, line 222, in _call_with_frames_removed
    File “/home/thierry/Documents/delas_env/venv/src/stockmgmt/admin.py”, line 2, in
    from .forms import StockCreationForm
    File “/home/thierry/Documents/delas_env/venv/src/stockmgmt/forms.py”, line 7, in
    class StockCreationForm(forms.ModelForm):
    File “/home/thierry/Documents/delas_env/venv/src/stockmgmt/forms.py”, line 8, in StockCreationForm
    class Meta:
    File “/home/thierry/Documents/delas_env/venv/src/stockmgmt/forms.py”, line 10, in Meta
    fields [‘category’,’item_name’,’quantity’]
    TypeError: ‘module’ object is not subscriptable

  • stock) root@kali:~/stock/Src# python manage.py runserver
    Watching for file changes with StatReloader
    Exception in thread Thread-1:
    Traceback (most recent call last):
    File “/usr/lib/python3.9/threading.py”, line 973, in _bootstrap_inner
    self.run()
    File “/usr/lib/python3.9/threading.py”, line 910, in run
    self._target(*self._args, **self._kwargs)
    File “/root/stock/lib/python3.9/site-packages/django/utils/autoreload.py”, line 54, in wrapper
    fn(*args, **kwargs)
    File “/root/stock/lib/python3.9/site-packages/django/core/management/commands/runserver.py”, line 109, in inner_run
    autoreload.raise_last_exception()
    File “/root/stock/lib/python3.9/site-packages/django/utils/autoreload.py”, line 77, in raise_last_exception
    raise _exception[0](_exception[1]).with_traceback(_exception[2])
    File “/root/stock/lib/python3.9/site-packages/django/utils/autoreload.py”, line 54, in wrapper
    fn(*args, **kwargs)
    File “/root/stock/lib/python3.9/site-packages/django/__init__.py”, line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
    File “/root/stock/lib/python3.9/site-packages/django/apps/registry.py”, line 122, in populate
    app_config.ready()
    File “/root/stock/lib/python3.9/site-packages/django/contrib/admin/apps.py”, line 24, in ready
    self.module.autodiscover()
    File “/root/stock/lib/python3.9/site-packages/django/contrib/admin/__init__.py”, line 26, in autodiscover
    autodiscover_modules(‘admin’, register_to=site)
    File “/root/stock/lib/python3.9/site-packages/django/utils/module_loading.py”, line 47, in autodiscover_modules
    import_module(‘%s.%s’ % (app_config.name, module_to_search))
    File “/usr/lib/python3.9/importlib/__init__.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “”, line 1030, in _gcd_import
    File “”, line 1007, in _find_and_load
    File “”, line 986, in _find_and_load_unlocked
    File “”, line 680, in _load_unlocked
    File “”, line 850, in exec_module
    File “”, line 228, in _call_with_frames_removed
    File “/root/stock/Src/stocksys/admin.py”, line 6, in
    class StockCreateAdmin(admin.ModelAdmin):
    File “/root/stock/Src/stocksys/admin.py”, line 11, in StockCreateAdmin
    admin.site.register(Stock, StockCreateAdmin)
    NameError: name ‘StockCreateAdmin’ is not defined

  • please I need help..
    this is what is showing me..
    stock) root@kali:~/stock/Src# python manage.py runserver
    Watching for file changes with StatReloader
    Exception in thread Thread-1:
    Traceback (most recent call last):
    File “/usr/lib/python3.9/threading.py”, line 973, in _bootstrap_inner
    self.run()
    File “/usr/lib/python3.9/threading.py”, line 910, in run
    self._target(*self._args, **self._kwargs)
    File “/root/stock/lib/python3.9/site-packages/django/utils/autoreload.py”, line 54, in wrapper
    fn(*args, **kwargs)
    File “/root/stock/lib/python3.9/site-packages/django/core/management/commands/runserver.py”, line 109, in inner_run
    autoreload.raise_last_exception()
    File “/root/stock/lib/python3.9/site-packages/django/utils/autoreload.py”, line 77, in raise_last_exception
    raise _exception[0](_exception[1]).with_traceback(_exception[2])
    File “/root/stock/lib/python3.9/site-packages/django/utils/autoreload.py”, line 54, in wrapper
    fn(*args, **kwargs)
    File “/root/stock/lib/python3.9/site-packages/django/__init__.py”, line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
    File “/root/stock/lib/python3.9/site-packages/django/apps/registry.py”, line 122, in populate
    app_config.ready()
    File “/root/stock/lib/python3.9/site-packages/django/contrib/admin/apps.py”, line 24, in ready
    self.module.autodiscover()
    File “/root/stock/lib/python3.9/site-packages/django/contrib/admin/__init__.py”, line 26, in autodiscover
    autodiscover_modules(‘admin’, register_to=site)
    File “/root/stock/lib/python3.9/site-packages/django/utils/module_loading.py”, line 47, in autodiscover_modules
    import_module(‘%s.%s’ % (app_config.name, module_to_search))
    File “/usr/lib/python3.9/importlib/__init__.py”, line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File “”, line 1030, in _gcd_import
    File “”, line 1007, in _find_and_load
    File “”, line 986, in _find_and_load_unlocked
    File “”, line 680, in _load_unlocked
    File “”, line 850, in exec_module
    File “”, line 228, in _call_with_frames_removed
    File “/root/stock/Src/stocksys/admin.py”, line 6, in
    class StockCreateAdmin(admin.ModelAdmin):
    File “/root/stock/Src/stocksys/admin.py”, line 11, in StockCreateAdmin
    admin.site.register(Stock, StockCreateAdmin)
    NameError: name ‘StockCreateAdmin’ is not defined

Leave a Reply to Solomon Cancel reply

Your email address will not be published. Required fields are marked *