本文整理汇总了Python中apps.gift.models.Gift.category方法的典型用法代码示例。如果您正苦于以下问题:Python Gift.category方法的具体用法?Python Gift.category怎么用?Python Gift.category使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类apps.gift.models.Gift
的用法示例。
在下文中一共展示了Gift.category方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: sync_new_task
# 需要导入模块: from apps.gift.models import Gift [as 别名]
# 或者: from apps.gift.models.Gift import category [as 别名]
def sync_new_task(request, uid):
logging.info("Create new gift from 5studio.ru with uid: %s" % uid)
url = 'http://www.5studio.ru/api/v1/get/gift.json?&uid=%s' % uid
result = urlfetch.fetch(url)
if result.status_code == 200:
j = simplejson.loads(result.content)
if len(j):
name = j.get('name', '').replace('\\"', '"')
name_origin = j.get('name_origin', '').replace('\\"', '"')
barcode = j.get('barcode', '')
description = j.get('description', '').replace('\\"', '"')
price = j.get('price', 0.0)
leftovers = j.get('leftovers', 0)
gift = Gift.all().filter('uid_5studio =', uid).fetch(1)
if gift:
gift = gift[0]
is_new = False
else:
is_new = True
gift = Gift(
uid_5studio=uid,
name=name,
name_origin=name_origin,
barcode=barcode,
description=description,
price=price,
leftovers=leftovers)
brand = j.get('brand', '').replace('\\"', '"')
if brand:
brand_obs = Brand.all().filter('brand =', brand)
if not brand_obs.count():
brand = Brand(brand=brand)
brand.put()
else:
brand = brand_obs.get()
gift.brand = brand
gift.category = get_category(j)
gift.subcategory = get_subcategory(j, gift.category)
gift.put()
if is_new or not gift.thumbs:
thumbs_url = j.get('thumbs_url', [])
for url in thumbs_url:
gift_uid = gift.key().id()
memcache.add('sync/add_image/%s' % gift_uid,
'http://%s' % url, 7200)
def txn():
taskqueue.add(url=url_for(
'sync/sync_add_image',
uid=gift.key().id()),
transactional=True)
db.run_in_transaction(txn)
return render_json_response({'api_msg': 'Ok', 'api_success': True})
示例2: sync_gift_task
# 需要导入模块: from apps.gift.models import Gift [as 别名]
# 或者: from apps.gift.models.Gift import category [as 别名]
def sync_gift_task(request, task_id):
gift_id = memcache.get(task_id)
memcache.delete(task_id)
if gift_id:
try:
result = urlfetch.fetch(
'http://www.3dhero.ru/api/v2/product.json?id=%s' % gift_id
)
if result.status_code == 200:
result = simplejson.loads(result.content)
if result['success']:
model = result['result']
if model['id_1c']:
category = Category.all().filter('name =', u'Развивающие Игры').get()
if category:
group = Group.all().filter('category =', category).filter('name =', u'Фигурки Героев').get()
else:
group = None
gift = Gift(
name = model.get('name', ''),
id_1c = model['id_1c'],
catalogue_id = model.get('catalogue_id', ''),
barcode = model.get('barcode', ''),
brand = model.get('brand', ''),
country = model.get('country', ''),
material = model.get('material', ''),
gift_size = model.get('size', ''),
weight = model.get('weight',''),
box_size = model.get('box_size', ''),
master_box = model.get('box_amount', ''),
real_price = model.get('price_trade', 0.0),
price = model.get('price_retail', 0.0),
leftovers = model.get('leftovers', 0),
remote_leftovers = model.get('leftovers_on_way', 0),
to_sync = True
)
if category and group:
gift.category = category
gift.group = group
gift.put()
images = model.get('images', [])
if images:
for img in images:
def txn():
task_id = str(uuid.uuid4())
data = {'gift_id': gift.key().id(), 'img_url': img}
memcache.add(task_id, data, TASK_LIVE_TIMEOUT)
taskqueue.add(
url=url_for('sync/add_image_task', task_id=task_id),
transactional=True
)
db.run_in_transaction(txn)
except:
pass
return render_to_response('empty.html')
示例3: update_gifts
# 需要导入模块: from apps.gift.models import Gift [as 别名]
# 或者: from apps.gift.models.Gift import category [as 别名]
def update_gifts(task_id, create=False, except_fields=EXCEPT_FIELDS_UPDATE):
set_obj = memcache.get(task_id)
flag = False
if set_obj:
data = simplejson.loads(set_obj)
memcache.delete(task_id)
id_1c = data.get('id_1c', '')
logging.info("API update 1c: %s" % id_1c)
name = data.get('name', '')
logging.info("API update name: %s" % name)
if not id_1c and not name:
if not create:
return render_to_response('empty.html')
if id_1c:
gifts_obj = Gift.all().filter('id_1c =', id_1c)
if not gifts_obj.count():
gifts_obj = Gift.all().filter('name =', name)
else:
gifts_obj = Gift.all().filter('name =', name)
if gifts_obj.count() and create:
return render_to_response('empty.html')
gift = None
if gifts_obj.count() and not create:
gift = gifts_obj[0]
if not gifts_obj.count() and create:
gift = Gift(name=name)
if gift is None:
return render_to_response('empty.html')
# update category and groups
category = data.get('subcategory', '-')
group = data.get('group', '-')
try:
a = gift.category.name
b = gift.group.name
except Exception:
gift.category = gift.group = None
if category != '-' and group != '-':
if not category or not group:
if gift.category or gift.group:
gift.category = None
gift.group = None
flag = True
else:
category_obj = Category.all().filter('name =', category)
if category_obj.count():
category_obj = category_obj[0]
else:
category_obj = Category(name=category)
category_obj.put()
if not gift.category or gift.category != category_obj:
gift.category = category_obj
flag = True
group_obj = Group.all().filter(
'category =', category_obj).filter('name =', group)
if group_obj.count():
group_obj = group_obj[0]
else:
group_obj = Group(name=group, category=category_obj)
group_obj.put()
if not gift.group or gift.group != group_obj:
gift.group = group_obj
flag = True
# and other fields
for key in data.keys():
if key in except_fields:
continue
value = data.get(key, None)
if value is None:
continue
if key == 'receipt_date':
try:
new_date = datetime.date(
datetime.strptime(value, '%Y-%m-%d'))
if new_date == gift.receipt_date:
continue
gift.receipt_date = new_date
flag = True
except ValueError:
if gift.receipt_date is not None:
gift.receipt_date = None
flag = True
continue
try:
old_val = getattr(gift, key)
if old_val == value:
continue
setattr(gift, key, value)
flag = True
except AttributeError:
pass
if flag:
gift.put()
gift_views.get_gift(gift.uid, True)
return render_to_response('empty.html')