Вы можете изменить только один элемент массива на каждом шаге цикла, поэтому вам нужно использовать новую переменную для агрегирования результатов:
do $
declare
groups jsonb =
'[
{"id": "1", "name": "Ann", "age": 20 },
{"id": "2", "name": "Margaret", "age": 30 }
]';
new_groups jsonb = '[]';
begin
for i in 0..jsonb_array_length(groups) - 1
loop
new_groups:= new_groups || (groups->i) - 'age';
end loop;
raise notice '%', new_groups;
end $;
NOTICE: [{"id": "1", "name": "Ann"}, {"id": "2", "name": "Margaret"}]
DO
Лучше сделать то же самое в один запрос без цикла и дополнительной переменной:
do $
declare
groups jsonb =
'[
{"id": "1", "name": "Ann", "age": 20 },
{"id": "2", "name": "Margaret", "age": 30 }
]';
begin
select jsonb_agg(value- 'age')
from jsonb_array_elements(groups)
into groups;
raise notice '%', groups;
end $;
См. Билет Django # 10985: Объясните, как модели могут быть организованы в каталог
Возможно, вы не импортируете свои модели в __ init __. Py
?
Вот решение, если у Вас есть более новая версия Django, предполагая, что у Вас есть подпапка, названная subfolder
:
в apps.py
из Вашего приложения папки:
from django.apps import AppConfig
class MyappConfig(AppConfig):
name = 'myapp'
def ready(self):
from myapp.subfolder import models
syncdb
не будет создавать таблицы для моделей, не расположенных в < appname> .models
, поэтому импортируйте его туда, например из apps.foo.models импортировать SomeModel
.