def get_session(self, code): app_id = Config.objects.filter(name="appId").first().content app_secret = Config.objects.filter(name="appSecret").first().content url = f"https://api.weixin.qq.com/sns/jscode2session?appid={app_id}&secret={app_secret}&js_code={code}&grant_type=authorization_code" json = requests.get(url).json() open_id = attr(json, "openid") session_key = attr(json, "session_key") return open_id, session_key
def to_json(self): return { "id": self.id, "address": self.address.to_json(), "items": [item.to_json() for item in self.orderitem_set.all()], "status": self.status, "status_name": self.status_name, "created": self.created.strftime("%Y-%m-%d %H:%M:%S"), "order_number": self.order_number, "remark": self.remark, "fee": self.fee, "logistics_fee": self.logistics_fee, "total_fee": self.total_fee, "shipper": attr(self.shipper, "name"), "tracking_number": self.tracking_number, "logistics_traces": [ l.to_json() for l in self.logisticstrace_set.order_by("-event_time").all() ] }
def import_notice(self): # if Notice.objects.all(): return # json = get(f"{url_prefix}/notice/list?pageSize=500") for obj in attr(json, "data.dataList", []): data = get( f"{url_prefix}/notice/detail?id={obj['id']}").json()["data"] Notice.objects.create(title=data["title"], content=data["content"], start_date=datetime.datetime.min, end_date=datetime.datetime.max)
def import_banner(self): # Product.objects.filter(banner_enable=True).all().delete() if len(Product.objects.filter(banner_enable=True).all()): return json = get(f"{url_prefix}/banner/list?key=mallName") for obj in attr(json, "data", []): id = obj["businessId"] if id: product = self.import_product_by_id(obj["businessId"]) product.banner_url = obj['picUrl'] product.banner_enable = True product.save() print(product)
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context.update({ 'model_name': self.model.__name__, 'model_verbose_name': attr(self, 'model._meta.verbose_name'), 'creatable': self.is_creatable, 'cloneable': self.is_cloneable, 'editable': self.is_editable, 'viewable': self.is_editable, 'removable': self.is_removable, 'operable': self.is_operable, "selectable": self.is_selectable, }) return context
def get_parent_list_fields(self): fields = [] model = self.model chains = get_ancestors(model, self.get_max_cls()) chain_names = [name for name, _ in chains] count = len(chains) for index in range(0, count): name, model = chains[index] attribute_name = ".".join(chain_names[0:chain_names.index(name) + 1]) fields.append(Field(name, attr(model, "_meta.verbose_name"), attribute_name, model.__name__)) fields.reverse() return fields
def index(request): user: User = request.user name = attr(user, "cinema.channel.name") or getattr(settings, 'FUNCTION_NAME') context = { "random": ''.join(random.sample(string.ascii_letters + string.digits, 8)), "nodes": get_nodes(), "site_name": "玩具商城", "copyright": "玩具商城 © 2016-2018", "role_name": "管理员", } template = loader.get_template('index/main.html') return HttpResponse(template.render(context, request))
def import_coupon(self): # if len(Coupon.objects.all()): return json = get(f"{url_prefix}/discounts/coupons") for obj in attr(json, "data", []): Coupon.objects.create( name=obj["name"], threshold=obj["moneyHreshold"], reduce=obj['moneyMin'], total=obj['numberTotle'], left=obj['numberLeft'], member_limit=obj['numberPersonMax'], sequence=0, expiry_date=12, start_date=datetime.datetime.min, end_date=datetime.datetime.max, enabled=True, )
def import_config(self): # Config.objects.all().delete() # if len(Config.objects.all()): return keys = [ "mallName", "recharge_amount_min", "shopPrompt", "shopDelivery", "shopDeliveryPrice", "couponsTitlePicStr", "aboutUsTitle", "servicePhoneNumber", "aboutUsContent", "finderRecommendTtile" ] for key in keys: # json = load_json("config/get-value/couponsTitlePicStr.json") json = get(f"{url_prefix}/config/get-value?key={key}") print(json) data = attr(json, "data") if data: if not Config.objects.filter(name=key).first(): config = Config.objects.create(name=key, title=data['remark'], content=data["value"]) print(config)
def to_tuple(node): if not isinstance(node, tuple): model = import_model(app_name, node) node = (node, attr(model, '_meta.verbose_name'), attr(model, 'ROLE')) return node
def get_model_exclude_names(self): return attr(self.model, "list_exclude", [])
def user(self) -> User: return attr(self, "request.user")
def get_model_include_names(self): return attr(self.model, "list_fields", [])
def to_json(self, obj, include_fields): return {"code": 0, "data": {key: attr(obj, key) for key in include_fields}}
def list_response(self, objs, include_fields): return self.json_response({"code": 0, "data": [{key: attr(c, key) for key in include_fields} for c in objs]})