本文整理汇总了Python中models.Transaction.delete方法的典型用法代码示例。如果您正苦于以下问题:Python Transaction.delete方法的具体用法?Python Transaction.delete怎么用?Python Transaction.delete使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类models.Transaction
的用法示例。
在下文中一共展示了Transaction.delete方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_model_transaction
# 需要导入模块: from models import Transaction [as 别名]
# 或者: from models.Transaction import delete [as 别名]
def test_model_transaction(self):
"Test transaction model"
contact_type = ContactType(name='test')
contact_type.save()
contact = Contact(name='test', contact_type=contact_type)
contact.save()
currency = Currency(code="GBP",
name="Pounds",
symbol="L",
is_default=True)
currency.save()
account = Account(
name='test', owner=contact, balance_currency=currency)
account.save()
obj = Transaction(name='test',
account=account,
source=contact,
target=contact,
value=10,
value_currency=currency)
obj.save()
self.assertEquals('test', obj.name)
self.assertNotEquals(obj.id, None)
obj.delete()
示例2: post
# 需要导入模块: from models import Transaction [as 别名]
# 或者: from models.Transaction import delete [as 别名]
def post(self):
action = self.request.get('action', 'list')
if action == 'list':
self.sendTransactionList()
elif action == 'update':
# add a new or update a transaction
tkey = self.request.get('transaction', 'None')
if tkey == 'None':
transaction = Transaction()
transaction.project = self.project
else:
transaction = Transaction.get(tkey)
if transaction.project.key() != self.project.key():
raise Exception("Project/Transaction mismatch")
# update / set fields
transaction.date = datetime.strptime(self.request.get('date', transaction.date.isoformat()), "%Y-%m-%d")
transaction.source = Account.get(self.request.get('source', transaction.source and transaction.source.key()))
transaction.dest = Account.get(self.request.get('dest', transaction.dest and transaction.dest.key()))
transaction.ammount = float(self.request.get('ammount', str(transaction.ammount)).replace(',', '.'))
transaction.check = self.request.get('check', 'False') == 'True'
transaction.text = self.request.get('text', transaction.text)
transaction.user = self.user
# a None currency means we use the base currency!
c = self.request.get('currency', transaction.currency and transaction.currency.key())
transaction.currency = Currency.get(c) if c != "None" else None
# exchange source and dest, if the amount is negative
if transaction.ammount < 0:
tmp_src = transaction.source
transaction.source = transaction.dest
transaction.dest = tmp_src
transaction.ammount = -transaction.ammount
# put back into data store
transaction.put()
# retransmit all transactions
self.sendTransactionList()
elif action == 'delete':
# add a new or update a transaction
transaction = Transaction.get(self.request.get('transaction', 'None'))
if transaction.project.key() != self.project.key():
raise Exception("Project/Transaction mismatch")
transaction.delete()
# retransmit all transactions
self.sendTransactionList()
else:
raise Exception("Unknown action '%(action)s'!" % {'action':action})
示例3: transaction
# 需要导入模块: from models import Transaction [as 别名]
# 或者: from models.Transaction import delete [as 别名]
def transaction( request):
'''
View for handling transaction start/stop
<base_url>/transaction?Action=Start
<base_url>/transaction?Action=Stop&TransID=<ID>
'''
# Validate the request
if request.method != 'GET':
return HttpResponse( err_not_get(), status=400) # Bad request
if not 'Action' in request.GET:
return HttpResponse( err_missing_param( 'Action'), status=400) # Bad request
action = request.GET['Action']
if not (action == 'Start' or action == 'Stop'):
return HttpResponse( json_err_msg("Expected either 'Start' or 'Stop' for the 'Action' parameter."),
status=400)
if action == 'Start':
# Start a new transaction
new_trans = Transaction()
new_trans.owner = request.user
new_trans.save() # Need to call save() so that the id value is generated
# generate the name and create the directory
dir_name = os.path.join( settings.TRANSACTION_DIR, request.user.username + '_' + str(new_trans.id))
os.mkdir(dir_name, 0770)
# Use setfacl to give the user read, write & execute permissions
# on the directory we just created
permissions = request.user.username + ':rwX'
proc = subprocess.Popen([settings.SETFACL_BIN, '-m', permissions, dir_name])
proc.wait()
if proc.returncode != 0:
# couldn't set the ACL (maybe this filesystem doesn't support ACL's?)
# so we need to fail the operation and that means cleaning up after
# ourselves
recursive_rm( dir_name)
new_trans.delete()
return HttpResponse( json_err_msg( "Cannot start transaction: Failed to set ACL's on transaction directory."),
status=500) # internal server error
# If we make it here, everything's good - save the transaction object
# to the DB and return the required JSON
new_trans.directory = dir_name
new_trans.save()
json_out = { }
json_out['TransID'] = new_trans.id
json_out['Directory'] = dir_name
return HttpResponse( json.dumps( json_out))
else:
# Stop an existing transaction
# Need to specify the transaction ID
(trans, error_response) = validate_trans_id( request)
if error_response != None:
# TransID didn't validate...
return error_response
# The transaction is validated - delete the files/directories
recursive_rm( trans.directory)
# delete the transaction from the db (Django defaults to 'cascaded' deletes,
# so all we need to do is remove the transaction and everything that was pointing
# to it (jobs & files) will also be removed
trans.delete()
return HttpResponse()