create() can run local delivery if you pass run_delivery=True.

It can also optionally take a "value" parameter as well as
reading the fields of the new object out of kwargs.
2019-08-17
Marnanel Thurman 2019-07-31 19:49:42 +01:00
rodzic 50c4f2f6b7
commit e16178ba00
1 zmienionych plików z 13 dodań i 2 usunięć

Wyświetl plik

@ -6,14 +6,21 @@ logger = logging.getLogger(name='django_kepi')
def create(
is_local_user=True,
run_side_effects=True,
**value):
run_delivery=True,
value=None,
**kwargs):
from django_kepi.delivery import deliver
logger.info("Create begins: source is %s; local? %s; run side effects? %s",
value, is_local_user, run_side_effects)
if value is None:
value = kwargs.copy()
# Remove the "f_" prefix, which exists so that we can write
# things like f_type or f_object without using reserved keywords.
for k,v in value.copy().items():
for k,v in kwargs.copy().items():
if k.startswith('f_'):
value[k[2:]] = v
del value[k]
@ -87,5 +94,9 @@ def create(
if run_side_effects:
result.run_side_effects()
if run_delivery:
deliver(result.number,
incoming = True)
return result