Создание модели. Импорт данных в базу. Админ интерфейс. Создание модели. Импорт данных в базу. Админ интерфейс. low db django python

Джанго. Создание модели Документов. Импорт данных в базу. Админ интерфейс.

Open in new window

Создаем ветку в гит и переключаемся на нее.

git branch model-document
git checkout model-document

Создаем модель из предоставленного дампа таблицы.

Разворачиваем дамп из файла

postgresql sql dump

postgresql sql dump

Делаем выгрузку классов таблиц из БД в файл.

./manage.py inspectdb >> source-model.py

При возникновении ошибки

The error was: sequence index must be integer, not 'slice'

Необходимо даунгрейдить psycopg2 до версии 2.7

# requirements.txt
django
psycopg2==2.7

Переставим командой

pip install -r ../requirements.txt

Заберем код модели и вставим в app/models.py нашего приложения.

class MainDocuments(models.Model):
    uid = models.CharField(max_length=250)
    title = models.TextField(blank=True, null=True)
    href = models.CharField(max_length=250, blank=True, null=True)
    date = models.DateField(blank=True, null=True)
    is_error = models.BooleanField()
    is_file_downloaded = models.BooleanField()
    doc_html = models.TextField(blank=True, null=True)
    doc_txt = models.TextField(blank=True, null=True)
    is_document_downloaded = models.BooleanField()
    is_files_downloaded = models.BooleanField()

    class Meta:
        managed = False
        db_table = 'main_documents'

Делаем миграцию.

./manage.py makemigration
./manage.py migrate

postgresql sql dump

Создаем админ интерфейс (файл app/admin.py)

from django.contrib import admin
from .models import MainDocuments
# Register your models here.

class MainDocumentsAdmin(admin.ModelAdmin):
    list_display = ['title', 'date']
    search_fields = ['title']
    list_filter = ['date']

admin.site.register(MainDocuments, MainDocumentsAdmin)

postgresql sql dump

Мержим ветку model-document с веткой master.

git checkout master
git merge model-document

postgresql sql dump

Other topics