\timing
и выполнять интересующие вас запросы. from django import forms
class CategoryAdminForm(forms.ModelForm):
class Meta:
model = Category
exclude = ['brand_name']
from django.contrib import admin
from django.db import connection
from .models import Category
from .forms import CategoryAdminForm
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
SQL_QUERY = '...'
form = CategoryAdminForm
def get_form(self, request, obj=None, **kwargs):
form_class = super(CategoryAdmin, self).get_form(request, obj=obj, **kwargs)
with connection.cursor() as cursor:
cursor.execute(SQL_QUERY, [obj.category_id])
row = cursor.fetchone()
form_class.brand_name = forms.CharField(initial=row[0])
return form_class
create table categories (
id integer primary key,
parent integer references categories,
name varchar(50) not null
);
create table manufacturers (
id integer primary key,
name varchar(30) not null
);
create table goods (
id integer primary key,
category integer references categories,
manufacturer integer references manufacturers,
name varchar(50) not null
);
select
m.name,
count(*) as goods_count
from goods as g
inner join manufacturers as m
on g.manufacturer = m.id
where category = 1
group by m.name;
declare @new_rec_id;
set @new_rec_id = select recordId from catalog_49_links
where recordId in (
select recordId from catalog_49_links
where catalogId = 36 and catalogRecordId = 352
order by createdAt desc
limit 1
)
and catalogId = 56 or (catalogId = 36 and catalogRecordId = 352)
order by createdAt desc
limit 1;
with recursive r as (
select
id, parent_id, name
from catalog_category
where id = 8
union
select
cc.id, cc.parent_id, cc.name
from catalog_category as cc
join r
on cc.parent_id = r.id
)
select id, name from r where id <> 8;