Основи Python и Django. / Практикум. Створюємо телеграм бота. / Створення інтернет-магазину. Частина 2.
Створення інтернет-магазину. Частина 2.
Створення програми Django.
django-admin.py startproject prj
cd prj
./manage.py migrate
Створення програми shop
./manage.py startapp shop
Додамо додаток у проект.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'shop'
]
Створимо модель (shop/models.py).
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=250)
name_slug = models.CharField(max_length=250)
class Subcategory(models.Model):
name = models.CharField(max_length=250)
name_slug = models.CharField(max_length=250)
category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True)
class Good(models.Model):
name = models.CharField(max_length=250)
name_slug = models.CharField(max_length=250)
desc = models.TextField()
subcategory = models.ForeignKey(Subcategory, on_delete=models.SET_NULL, null=True)
class Image(models.Model):
good = models.ForeignKey(Good, on_delete=models.SET_NULL, null=True)
image = models.ImageField()
Опишемо класи адмін інтерфейсу та прив’яжемо їх до моделі (shop/admin.py).
from django.contrib import admin
from .models import *
class CategoryAdmin(admin.ModelAdmin):
pass
class SubcategoryAdmin(admin.ModelAdmin):
pass
class GoodAdmin(admin.ModelAdmin):
pass
class ImageAdmin(admin.ModelAdmin):
pass
admin.site.register(Category, CategoryAdmin)
admin.site.register(Subcategory,SubcategoryAdmin)
admin.site.register(Good, GoodAdmin)
admin.site.register(Image, ImageAdmin)
Створимо нову команду імпорту даних (shop/management/commands/import.py).
from django.core.management.base import BaseCommand, CommandError
from shop.models import *
class Command(BaseCommand):
def handle(self, *args, **options):
print('Importing data')
** Не забуваємо створювати файли ini.py у нових каталогах management та commands**