pymysql.err.InternalError: (1327, «Необъявленная переменная: Нет»)

#python #frappe

Вопрос:

Я создаю отчет на python и sql с использованием фреймворка frappe, но я получаю ошибку, которую не понимаю, как ни одна из них не может быть необъявленной переменной? Может кто-нибудь, пожалуйста, объяснить мне это. надеюсь, кто — нибудь сможет указать мне правильное направление.

вот мой report.py

 def execute(filters=None):
    if not filters:
        filters = {}

    conditions = get_conditions(filters)
    columns = get_column(filters,conditions)
    data = []

    details = get_details(conditions,filters)
    
    return columns, data

def get_details(conditions="", filters={}):
    data = frappe.db.sql("""select  i.ifw_retailskusuffix, i.item_code, i.item_name, i.image,
            s.supplier, s.supplier_part_no, i.disabled, country_of_origin,customs_tariff_number,
            ifw_duty_rate,ifw_discontinued,ifw_product_name_ci,ifw_item_notes,ifw_item_notes2,
            ifw_po_notes
            from `tabItem Supplier` s inner join `tabItem` i on i.name = s.parent
            where 1 = 1 %s
        """%(conditions), filters, as_dict=1)
    return data

def get_conditions(filters):
    conditions = ""
    suppliers = []
    limit = filters.get("limit")
    if filters.get('supplier'):
        suppliers = frappe.parse_json(filters.get("supplier"))
        suppliers.append("asa")
        suppliers.append("asaa")
        # format_strings = ','.join(['%s'] * len(suppliers))
        conditions  = " and s.supplier IN %(supplier)s"
    if limit != "All":
        conditions  = " limit {}".format(str(limit))
    return conditions    
 

Соответствующий файл javascript report.js

 frappe.query_reports["Sales Report"] = {
    "filters": [
        {
            "fieldname":"supplier",
            "label": __("Supplier"),
            "fieldtype": "MultiSelectList",
            "options": "Supplier",
            get_data: function(txt) {
                // if (!frappe.query_report.filters) return;

                // let party_type = frappe.query_report.get_filter_value('party_type');
                // if (!party_type) return;

                return frappe.db.get_link_options("Supplier", txt);
            },
        },
        {
            "fieldname":"limit",
            "label": __("Limit"),
            "fieldtype": "Select",
            "options": ["20", "500", "1000", "5000", "10000", "All"],
            "default": "20"
        },
    ]
};