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

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

Open in new window

Создание модели

class Person(models.Model):
    name_ru = models.CharField(max_length=250)
    name_kz = models.CharField(max_length=250)
    name_translit = models.CharField(max_length=250)
    birth = models.DateField()
    role = models.CharField(max_length=50)

Админ интерфейс.

from .models import MainDocuments, Person
...
class PersonAdmin(admin.ModelAdmin):
    list_display = ['name_ru', 'name_kz']
    search_fields = ['name_ru']


admin.site.register(Person, PersonAdmin)

chromedriver version

Создаем команду для парсинга документов для выбора ФИО (app/management/commands/parse_persons.py).

from django.core.management.base import BaseCommand, CommandError

class Command(BaseCommand):

    def handle(self, *args, **options):
        print('Parsing persons.')

Пробежим по таблице документов и выведем заголовки.

from django.core.management.base import BaseCommand, CommandError

from app.models import Person, MainDocuments

class Command(BaseCommand):

    def handle(self, *args, **options):
        print('Parsing persons.')   
        for md in MainDocuments.objects.all():
            print(md.title)

Попробуем вывести судей (строки от ‘Судья:’ до 3 пробела ) и сохранить их в таблице person, предварительно очистив.

from django.core.management.base import BaseCommand, CommandError

from app.models import Person, MainDocuments
import re

class Command(BaseCommand):

    def handle(self, *args, **options):
        print('Parsing persons.')   
        print("Deleting all persons")
        Person.objects.all().delete()
        for md in MainDocuments.objects.all():
            match = re.search('Судья:(.*)',md.title)
            try:
                rezult = match.group(1)    
                p = Person()
                p.name_ru = rezult
                p.role = 'judge'
                p.save()
                print("Saving ... %s" % rezult)
            except Exception as e:
                print(str(e))

Выбираем ответчиков по делу.

match = re.search('Ответчики по делу:(.*)Судья:',md.title)
try:
    rezult = match.group(1)   
    for nm in rezult.split(','):
        nm.replace('.','')
        if len(nm)>2:
            checking_words = nm.split(' ')
            if len(checking_words)<5:
                p = Person()
                p.name_ru = nm
                p.role = 'plantiff'
                p.save()
    print("Saving ... %s" % rezult)
except Exception as e:
    print(str(e))

Other topics