manage.py
импортится до того, как запатчится.mypackage.mymodule.foo
, где используется urlopen
из urllib
:from urllib.request import urlopen
def foo():
...
urlopen
.@patch("urllib.request.urlopen")
def test(urlopen):
...
@patch("mypackage.mymodule.urlopen")
def test(urlopen):
...
VARCHAR
для всей строки использовать 2 поля: строка VARCHAR
для букв и массив чисел INTEGER[]
:CREATE TABLE test (
"letters" VARCHAR(20),
"digits" INTEGER[]
);
INSERT INTO test
("letters", "digits")
VALUES
('ЧС', '{1, 1}'),
('ЧС', '{1, 2}'),
('ЧС', '{1, 3, 1}'),
('ЧС', '{1, 10}'),
('ЧС', '{1, 11, 1}'),
('П', '{1, 1}'),
('П', '{1, 2}'),
('П', '{2, 10}');
SELECT letters || '.' || array_to_string(digits, '.') from test order by letters, digits;
post_save
надо, pre_save
тут точно мимо) отрабатывает сразу после того, как будет сохранён объект User
. Пока всё ок.m2m_changed
, но это будет костыль, потому что этот сигнал будет вызван 2N раз, где N - число добавлений/удалений из m2m. events:
id (PK)
....
users:
id (PK)
...
event_users
event_id (PK, FK to events)
user_id (PK, FK to users)
feedbacks:
id (PK)
event_id (FK to events)
user_id_from (FK to users)
user_id_to (FK to users)
idx_unique (event_id, user_id_from, user_id_to) - уникальный индекс
>>> class MyKnowHowClass:
... SECRET = '42'
... TOP_SECRET = 'Kennedi was killed by UFO'
...
>>> import pickle
>>> pickle.dumps(MyKnowHowClass)
'c__main__\nMyKnowHowClass\np0\n.'
>>>
def all_unique(iterator):
counter = 0
items = set()
for item in iterator:
items.add(item)
counter += 1
if len(items) != counter:
return False
return True
user@user-workstation:/tmp/test$ docker container run --rm -v ${PWD}:/tmp -u $(id -u ${USER}):$(id -g ${USER}) ubuntu:18.04 touch /tmp/it.is.my.file
user@user-workstation:/tmp/test$ ll
итого 20
drwxrwxr-x 2 user user 4096 янв 22 13:55 ./
drwxrwxrwt 23 root root 16384 янв 22 13:55 ../
-rw-r--r-- 1 user user 0 янв 22 13:55 it.is.my.file
user@user-workstation:/tmp/test$ rm it.is.my.file
user@user-workstation:/tmp/test$ docker container run --rm -v ${PWD}:/tmp ubuntu:18.04 touch /tmp/it.is.my.file
user@user-workstation:/tmp/test$ ll
итого 20
drwxrwxr-x 2 user user 4096 янв 22 14:01 ./
drwxrwxrwt 23 root root 16384 янв 22 14:01 ../
-rw-r--r-- 1 root root 0 янв 22 14:01 it.is.my.file
user@user-workstation:/tmp/test$
@decorator
def foo():
..
foo = decorator(foo)
@FuncDec()
def foo():
print('Hello')
foo = FuncDec()(foo)
, а именно:FuncDec
(вызывается конструктор __init__
)__call__
) вместе с параметром foowrapper
, которая и будет в дальнейшем выполняться вместо объявленной foo
foo = FuncDec(foo)
django_user
пытаетесь ещё обратиться к user
. Так что чисто навскидку может помочь:if not obj.user == django_user:
return Response(status=HTTP_403_FORBIDDEN)
if obj.user != django_user:
return Response(status=HTTP_403_FORBIDDEN)
возможн ли как то напрямую через сам PIL сконвертировать gif в apng?
Однако сам то pil вполне себе умеет вынимать кадры... в общем кривые костыли
a = input()
b = input()
l = input()
N = input()
a = int(a)
b = int(b)
l = int(l)
N = int(N)
lenl = 2 * l
lena = (2 * N - 1) * a
lenb = 2*b *(N - 1)
sumlab = lenl + lena + lenb
print(sumlab)
a = int(input())
b = int(input())
l = int(input())
N = int(input())
lenl = 2 * l
lena = (2 * N - 1) * a
lenb = 2*b *(N - 1)
sumlab = lenl + lena + lenb
print(sumlab)