• Как сформировать запрос Mysql с фильтром по одному стобцу несколкьо значений?

    @89109983838 Автор вопроса
    Спасибо SharuPoNemnogu - ваш комментарий что-то никак не отмечается решением... расписываю готовый вариант здесь.
    ПОЛУЧИЛОСЬ ТАК!:

    Учитывая что мы изначально не знаем сколько будет фильтров в запросе:
    // $category_id = id  категории;
    // $manufacturer_id = id производителя
    
    $value = implode(',', $val_str);   //(массив id фильтров приводим к 'x,a,b,z.......' 
    $value_num = count($val_str);  // считаем сколько фильтров -  чтоб в группе sql указать

    !(структура ДБ CMS OPENCART)!

    $query = "SELECT COUNT(DISTINCT p.product_id) AS total FROM product p
    LEFT JOIN product_filter f ON(p.product_id = f.product_id)
    LEFT JOIN product_to_category c ON(p.product_id = c.product_id)
    WHERE f.filter_id in (". $value .") AND c.category_id = '".(int)$category_id."' AND p.manufacturer_id = '".(int)$manufacturer_id."'
    GROUP BY p.product_id having count(f.filter_id) = '".$value_num."'";
    Ответ написан
  • Opencart2 Как получить фильртра товаров по категории и бренду?

    @89109983838 Автор вопроса
    Сам разобрался!

    Вернет группы фильтов по категории и бренду
    $category_id = 1;
    $manufacturer_id = 5; 
    $query = $this->db->query("SELECT DISTINCT f.name, f.filter_group_id FROM ".DB_PREFIX."filter_group_description f
    LEFT JOIN ".DB_PREFIX."filter l ON(f.filter_group_id = l.filter_group_id)
    LEFT JOIN ".DB_PREFIX."product_filter t ON(l.filter_id = t.filter_id)
    LEFT JOIN ".DB_PREFIX."product p ON(t.product_id = p.product_id)
    LEFT JOIN ".DB_PREFIX."product_to_category c ON(p.product_id = c.product_id)
    WHERE c.category_id = '".(int)$category_id."' AND p.manufacturer_id = '".(int)$manufacturer_id."'");

    Вернет фильтра По категории, бренду и группе фильтров
    $category_id = 1;
    $manufacturer_id = 5; 
    $filter_group_id;
    
    $query2 = $this->db->query("SELECT DISTINCT l.filter_id, l.filter_group_id, l.name FROM ".DB_PREFIX."filter_description l
    LEFT JOIN ".DB_PREFIX."product_filter t ON(l.filter_id = t.filter_id)
    LEFT JOIN ".DB_PREFIX."product p ON(t.product_id = p.product_id)
    LEFT JOIN ".DB_PREFIX."product_to_category c ON(p.product_id = c.product_id)
    WHERE l.filter_group_id = '" . $filter_group_id ."' AND c.category_id = '".(int)$category_id."' AND p.manufacturer_id = '".(int)$manufacturer_id."'");


    Но это так примеры, варианты их использовал в разных местах под конкретную задачу.
    Если кто знает более оптимальный вариант укажите буду благодарен!
    Ответ написан
  • Как в Wordpress отредактировать виджет (добавить класс)?

    @89109983838 Автор вопроса
    Спасибо всем - НАШОЛ где прячется данный виджет!...

    смешно! - но в папке с плагинами ....
    ../wp-content/plugins/<тема>/inc/widget-clients.php

    я просто думал что все фишки темы хранятся в её папке, а оказалось что свои виджеты она хранит в папке для плагинов самого WORDPRESS'a
    Ответ написан
  • Как перенести фото номенклатуры во внешний том?

    @89109983838 Автор вопроса
    Вопрос звучит: Как перенести фото номенклатуры во внешний том?

    то есть есть в наличие1С 8.3 УТ 11.х с номенклатурой - надо выгрузить все фото в папку на диске (при этом сохранив имена как есть в базе - чтобы их потом обратно подцепить, ну или как вариант обозвать артикулом соответствующей номенклатуры)

    Для примера существует обработка infostart.ru/public/175587 но чобы скачать нужно баллов набрать на форуме или проплатить доступ - хотя сама обработка бесплатна. Нет ли у кого её - по инету искал открытого источника не нашёл.
    Ответ написан
  • Интеграция сайта с 1С. Где хранить товары: в 1С или в админке сайта?

    @89109983838
    если требуется в 1С фото номенклатуры и описания позиций не только для сайта, а к примеру для вывода прайсов с картинками и описаниями из 1С...
    или вы товары свои не знаете как выглядятя - а доступа к сайту нет,.
    или ЛЮБИТЕ 1С ........ и считаете 1С основай всего! :)
    то да есть смысл грузить в 1С.

    а так то вы только раздуваете базу особенно картинками, от чего тормаза! и повышаете шанс краха при обмене 1С с Opencart.

    1С для финансов а не "комбаин"... вот и логично использовать её для этого - и хранит там только Артикул, наименоване, цену (в ней формировать и грузить на сайт).

    а такто приходим к тому что быстрее, гибче и надежнее в 2 этапа:
    1) использовать Python для парсинга прайсов и сайтов постащиков для получения цен, в том числе и с маркета;
    формируем в нем же наценки;
    далее грузим розничную цену им же на сайт;
    сохраняем все в формате АРТ-ЦЕНА в файл xls;

    2) скармливаем xls в 1C

    самый нудный этап 2!!! т,к этап 1 проходит по одному счелчку и если бы не парсинг проходил за менее 10 сек (более 3000 позиций)!
    Ответ написан
  • Как исправить ошибку в опенкарт при выгрузке 1с?

    @89109983838
    У заказчика в выходные слетели все разделы на сайте - как понимаю в настройке модуля на стороне Opencart выставлено сбрасывать категории и т.д. при загрузке из 1С. думаю поэтому категории "слетели", а новые не создались т.к. выгрузка не прошла корректно! по причине что сервер WWW выдает 502 и связь с 1С обрывается!
    пробуйте грузить без фото из 1С для начала ... а дальше по ситуации!

    как вариант!
    1) очистите всю папку с картинками по пути "корень_сайта/image/import_files" через FTP,
    2) далее сделайте полную выгрузку из 1С - картинки по новой загрузятся.

    Хотя тут индивидуально!
    Ответ написан
  • Как перекодировать \u041c (Русскую) на PHP, данные берутся из POST?

    @89109983838 Автор вопроса
    Попробовал:
    (1833А и 1846A в первом артикуле русская А, оба в базе данных есть проверил на всякий случай)
    в mysql база, таблица, строка с актикулом в utf8_general_ci

    echo $key;
    $keys = html_entity_decode(str_replace('\u','&#x',$key), ENT_NOQUOTES,'UTF-8');
    echo " = ";
    echo $keys;


    в POST:
    "1833\u0410": 19315.25,
    "1846A": 31129.4375,

    Ответ php скрипта обратно приложению:
    1833А = 1833А Такой артикул не найден!!!
    1846A = 1846A Успешно обновлено!!!

    Чтож не так???
    Пошел в админку сайта и переписал артикула по новой, только брал не из прайсов EXCEL, а капировал прямо и ответа скрипта PHP (1833А = 1833А Такой артикул не найден!!!), Внешне вроде все тоже самое но малоли!
    И правда - поле проделанной операции - скрипт начал находить позиции по артикулам с русскими буквами и успешно их обновлять!

    Притом без всяких перекодировок, значит при копировании из EXCEL копипастом - получается крякозабра в базе данных
    Ответ написан
  • Почему xlwt несохряняет полностью файл при наличии русских букв?

    @89109983838 Автор вопроса
    Решение проблемы для версии python 3 это переход с xlwt на xlwt3 - тогда проблем нет с кодировками кириллицы!

    Только после установки xlwt3 если выходит ошибка:
    alueError: '__init__' in __slots__ conflicts with class variable

    Закоментируйте функцию __init__ в .........lib\site-packages\xlwt3\formula.py
    Ответ написан
  • Как запретить сайту на Flask поднятый на Windows IIS иметь доступ к другим папкам?

    @89109983838
    А как вы "перелистать файлы, папки"?
    напишите пример!!!
    вдруг у мня тоже так можно.... :(
    Ответ написан
  • Flask-sqlalchemy как проверить\создать\обновить строки в базе данных?

    @89109983838 Автор вопроса
    Вот после подбора и разбора параметров и ситуаций - результат такой:
    (буду признателен если кто добавит в комментариях правки по оптимизации)
    есть у нас форма с полями на типа:
    <input name=domain type="text" value="{{ data.domain }}">
    <input name=name type="text" value="{{data.name}}">
    .......... и так далее..... вьюшка получилась универсальна - 
    можно хоть сотни input добавлять прямо в шаблоне, 
    главное чтоб имена были у всех разные


    теперь сама вьюшка проверяет наличие input - он существует в базе то обновляет его значение - если нет еще то создает с присланными параметрами.

    app.route('/setting/', methods=['GET', 'POST', 'DELETE'])
    def setting():
        if not session.get('logged_in'): # проверяем залогин ли usr
            abort(404)                        
        if request.method == 'DELETE':  # Если метод HTTP = DELETE удаляем настройки для группы setting
            db.session.query(Setting).filter_by(group='setting').delete() 
            db.session.commit()
            return render_template('setting.html')
        data = {} #создаем словарь - в нем собираем данные и отправляем обратно в форму (так как разложить data = db.session.query(Setting).all() в шаблоне без переборов у меня не хватило ума... :(  , а так по-моему проще )
        if request.method == 'POST':
            for i in request.form.keys(): # обрабатываем каждый input по отдельности
                u = db.session.query(Setting).filter_by(group='setting').filter_by(key=i).first()
                if u: # если существует обновляем значением из form
                    u.value = request.form[i]                 
                    data[i] = request.form[i] # добавляем в словарь
                else:
                    db.session.add(Setting(group='setting', key=i, value=request.form[i])) # в противном случае создаем новое поле в базе данных и добавляем обратно в словарь
                    data[i] = request.form[i]
            db.session.commit() # Записать изменения в Базу данных
            return render_template('root/setting.html', data=data)  # как видите словарь ушел обратно к темплею, в указном выше примере показано как словарь раскладывается....
        u = db.session.query(Setting).filter_by(group='setting').all()   # Ну а пи простом GET запросе выгружаем все записи по группе, создаем словарь и отправляем на рендринг
        for i in u:        
            data[i.key]=i.value
        return render_template('root/setting.html', data=data)


    В результате:
    надо мне добавить в базу строку для хранения настройки какого-нибудь модуля
    - я добавляю соответственно только в теплее очередной input в его группу
    - и он сразу работает!!!!!

    Кстати таблица выглядит в models.py так:
    class Setting(db.Model):
        id = db.Column(db.Integer,primary_key = True)
        group = db.Column(db.String(32), nullable=False, default = 'NONE', index = True)
        key = db.Column(db.String(32), nullable=False, default = 'NONE', index = True)
        value = db.Column(db.Text, index = True)
        
        def get_id(self):
            return self.id
            
        def __unicode__(self):
            return self.id
    Ответ написан
  • Flask-sqlalchemy вместо страниц An error occurred?

    @89109983838 Автор вопроса
    Вообщем настроил uwsgi на работу по 0.0.0.0:8000 (добавив protocol=http)
    В браузере как и раньше открываются страницы только те что генерируются без обращения в Базе данных!

    А страницы с образением к базе (по типу как примере выше) выдает
    Соединение было сброшено
    Во время загрузки страницы соединение с сервером было сброшено.


    ################################# РЕШЕНИЕ##############
    Ответ оказался вполне простым:
    uwsgi - запускается от "лица" www, а база данных создавалась от другого пользователя user!
    соответственно: Flask не имел прав работать с базой данных и глючил- отрубаясь от uwsgi, ну а на DEV сервере естественно все работало т.к. права там одинаковы скажем так!

    надо логирование прикрутить к этому месту может сплывет что!
    Ответ написан
  • Nginx проблема с POST запросами?

    @89109983838 Автор вопроса
    было так:
    (закоментировав "gzip off;" post данные стали передаваться.... ничего другого не делал!)
    user www;
    worker_processes 4;
    pid /run/nginx.pid;
    
    events {
    	worker_connections 512;
    	# multi_accept on;
    }
    
    http {
    	
    	sendfile on;
    	tcp_nopush on;
    	tcp_nodelay on;
    	keepalive_timeout 65;
    	types_hash_max_size 2048;
    	server_tokens off;
    
    	#client_body_buffer_size 128k;
    	#client_max_body_size 500m;
    	
    	server_names_hash_bucket_size 64;
    	# server_name_in_redirect off;
    
    	include /etc/nginx/mime.types;
    	default_type application/octet-stream;
    
    	access_log /var/log/nginx/access.log;
    	error_log /var/log/nginx/error.log;
    
    	gzip off;
    	gzip_disable "msie6";
    
    	# gzip_vary on;
    	# gzip_proxied any;
    	# gzip_comp_level 6;
    	# gzip_buffers 16 8k;
    	# gzip_http_version 1.1;
    	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    	##
    	# Virtual Host Configs
    	##
    	include /etc/nginx/sites-enabled/*;
    }


    и виртуал ност
    server {
    	listen        80;
    	server_name   сайт.ru;
    	server_tokens off;
    	client_body_buffer_size 128k;
    	charset utf8;
    	client_max_body_size 500m;
    	
    	root /var/www/web/сайт.ru;
    	index index.php;
    	location ~*  .(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; }
    	
    	location /admin { index index.php; }
    	location / { try_files $uri @opencart; }
    	location @opencart { rewrite ^/(.+)$ /index.php?_route_=$1 last; }
    	
    	rewrite ^/sitemap.xml$ /index.php?route=feed/google_sitemap;
    		
    	location  ~ \.php$ {  
    	fastcgi_pass 127.0.0.1:9001;
    	fastcgi_index index.php;
    	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    	include fastcgi_params;
    	}
    	
    	
    	location ~ /\.ht {
    		deny  all;
    	}
    }


    модуль простейший "быстрый заказ" всплывающее окно с запросом имени и тел клиента - отсылает данные java, принимает php и сохраняет в базу, ток вот при включённом gzip это не работает..... !
    Ответ написан
  • Nginx возвращает содержимое php файла Opencart?

    @89109983838 Автор вопроса
    htaccess стандарт скажем так!
    Options +FollowSymlinks
    Options -Indexes
    <FilesMatch "\.(tpl|ini|log)">
     Order deny,allow
     Deny from all
    </FilesMatch>
    
    RewriteEngine On
    RewriteBase /
    RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
    RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
    RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

    ничего с этим связного нет!

    Дало в том почему nginx отдает выше указанное как статику, а не передаёт на обработку php5-fpm.
    ################################## ПОЗДНЕЕ###
    пол проблемы решилось элементарно:
    Оказывается файл php начинался с <? а не с <?php поэтому не воспринимался как скрипт php!!!!
    обрабатываться он начал! только целиком, а не отдельная в нем функция которую вызываем
    ..... public function order() { ....
    соответственно это тоже не функционально..... т.к. выдает не то что нужно!
    ####################
    Добавлю что в запросе передаются строковые данные методом post - может nginx их не передает??? поэтому и обработка слетает?
    ##############################РЕШЕНИЕ###############

    Отключение gzip в настрйоках nginx решило проблему с POST запрсами!
    Никто не подскажет как обойти это!? или думаю лучше создам отдельную тему!
    Ответ написан
  • Как настроить пути статический файлов в flask?

    @89109983838
    Возможно у меня была аналогичная проблема, только с редиректами
    вот посмотрите может поможет Flask-admin при редиректах меняет url как исправить?

    добавлю вот ман для настройки flask статики flask.pocoo.org/snippets/102
    app = Flask(__name__, static_folder='static')
    Ответ написан
  • Как выбрать поля из базы для создания меню сайта без ненужных столбцов в Flask-SQLAlchemy?

    @89109983838 Автор вопроса
    from sqlalchemy.orm import load_only
    
    @app.context_processor
    def menu():
        articles = Article.query.filter_by(onoff=1).options(load_only("name", "url", "num"))
        return dict(articles=articles)


    Попробовал так... сайт вроде как работает! :) - времени нет посмотреть из интерактивного режима что там конкретно выгружается... потом вернуть к этому вопросу, проверю, отпишусь...

    ################ добавлено спустя долгое время... #####################
    и так если в шаблоне выставить где нето {{ articles }} то в html на этом месте такая строка:
    SELECT article.url AS article_url, article.name AS article_name FROM article, article.num AS article_num WHERE article.onoff = :onoff_1

    если же в генерацию меню вместо текста ссылок выставить названия поля где хранится код статей
    {% for article in articles %}
            <li><a href="/{{ article.url }}/">{{ article.article }}</a></li>
    {% endfor %}

    то вместо названий громадный набор текстов (ну самих статей.....)

    а если еще так поступить то вообще АТАС! ;)
    {% for article in articles %}
            <li><a href="/{{ article.url }}/">{{ article.article|safe }}</a></li>
    {% endfor %}


    Так что вопрос остается открытым .......
    Ответ написан
  • Flask-admin при редиректах меняет url как исправить?

    @89109983838 Автор вопроса
    Ответ нашёл сам!
    И заключается он в том что маны читать внимательнее надо!!! :(

    но все же укажу и здесь
    У меня нет доступа к настройкам Apache поэтому вариант таков:

    Если изменить настройки Apache нельзя, например, хостинг не предоставляет такой возможности, то можно воспользоваться промежуточным приложением WSGI для удаления yourapplication.fcgi из URL.
    Настройте .htaccess:
    <IfModule mod_fcgid.c>
       AddHandler fcgid-script .fcgi
       <Files ~ (\.fcgi)>
           SetHandler fcgid-script
           Options +FollowSymLinks +ExecCGI
       </Files>
    </IfModule>
    
    <IfModule mod_rewrite.c>
       Options +FollowSymlinks
       RewriteEngine On
       RewriteBase /
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteRule ^(.*)$ cgi-bin/flask-wrapper.fcgi/$1 [QSA,L]
    </IfModule>

    Теперь настроим flask-wrapper.fcgi:
    #!/home/profel/python/bin/python
    # -*- coding: utf-8 -*-
    import sys, os
    reload(sys)
    sys.setdefaultencoding('utf8')
    
    sys.path.insert(0, ' /home/profel/site/')
    
    from flup.server.fcgi import WSGIServer
    from app import app
    
    class ScriptNameStripper(object):
       def __init__(self, app):
           self.app = app
    
       def __call__(self, environ, start_response):
           environ['SCRIPT_NAME'] = ''
           return self.app(environ, start_response)
    
    app = ScriptNameStripper(app)
    
    if __name__ == '__main__':
        WSGIServer(app).run()


    Кстати укажу на этот отрезок кода
    import sys, os
    reload(sys)
    sys.setdefaultencoding('utf8')

    С помощью его я решил проблему с выводом русских букв из файлов *.py (на хостинге и тестовом сервере .. windows).
    (по видимому консоль хостера, как и cmd не в UFT8. Для исправления недуга при старте приложения консоль перегружаем c установкой кодировки по умолчанию в UTF8. как то так.... )
    Ответ написан
  • Как "прикрутить" простую авторизацию к flask-admin?

    @89109983838 Автор вопроса
    проблема решена _ решение в самом низу поста! ;)))

    Попробовал реализовать! переправив код авторизации через базу данных на аккаунт из конфига.

    проверка проходит!
    далее при правельном акаунте выходит Traceback
    jinja2.exceptions.UndefinedError
    UndefinedError: 'form' is undefined


    File "..........\app\templates\admin\index.html", line 17, in block "body"
    ........

    17 {{ form.hidden_tag() if form.hidden_tag }} <----- на это ругается
    18 {% for f in form if f.type != 'CSRFTokenField' %}
    19
    .......

    Основной код по этой ситуации:
    # -*- coding: utf-8 -*-
    import os
    from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
    from flask.ext.sqlalchemy import SQLAlchemy
    from wtforms import form, fields, validators
    from flask.ext import admin
    from flask.ext.admin.contrib import sqla
    from flask.ext.admin import helpers, expose
    
    
    
    # Create Flask application
    app = Flask(__name__)
    
    # Create dummy secrey key so we can use sessions
    app.config['CSRF_ENABLED'] = True
    app.config['SECRET_KEY'] = '12345678290244'
    #app.config['DEBUG'] = 'True'
    app.config['USERNAME'] = 'admin'
    app.config['PASSWORD'] = '1234'
    
    
    # Create in-memory database (база для примера, для авторизации не используется)
    app.config['DATABASE_FILE'] = 'db.sqlite'
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + app.config['DATABASE_FILE']
    app.config['SQLALCHEMY_ECHO'] = True
    db = SQLAlchemy(app)
    
    
    # Create user model (модель для примера, для авторизации не используется).
    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        first_name = db.Column(db.String(100))
        last_name = db.Column(db.String(100))
        login = db.Column(db.String(80), unique=True)
        email = db.Column(db.String(120))
        password = db.Column(db.String(64))
       # Отображение в административном интерфейсе
        def __unicode__(self):
            return self.username
    
    # Define login and registration forms
    class LoginForm(form.Form):
        login = fields.TextField(validators=[validators.required()])
        password = fields.PasswordField(validators=[validators.required()])
    
        def validate_login(self, field):
            
            if app.config['USERNAME'] != self.login.data:
                raise validators.ValidationError('Invalid user')
    
            if app.config['PASSWORD'] != self.password.data:
                raise validators.ValidationError('Invalid password')
        # присудствовало в оригинальном файле при хранение акаунта в базе данных         
        #def get_user(self):
        #    return db.session.query(User).filter_by(login=self.login.data).first()
    
    def logged_in():
        # в сессии будет храниться информация о том, что пользователь вошёл
        return session.get('logged')
            
    # Create customized model view class
    class MyModelView(sqla.ModelView):
    
        def is_accessible(self):
            return logged_in()
        
        def _handle_view(self, name, **kwargs):
            if not logged_in():
                # делать редирект в некоторых случаях не стоит
                return redirect(url_for('.login_view'))
    
    
    # Create customized index view class that handles login & registration
    class MyAdminIndexView(admin.AdminIndexView):
    
        @expose('/')
        def index(self):
            if not logged_in():
                return redirect(url_for('.login_view'))
            return super(MyAdminIndexView, self).index()
    
        @expose('/login/', methods=('GET', 'POST'))
        def login_view(self):
            # handle user login
            form = LoginForm(request.form)
            if helpers.validate_form_on_submit(form):
                #использовалось в оригинальном фале при авторизацию через базу данных
                #user = form.get_user()
                #login.login_user(user)
                session.update({'logged':True}) # возможно задаю не правильно, подправте если не так!
                session.modified = True
    
            if logged_in():
                return redirect(url_for('.index'))
            link = '<p>Don\'t have an account? <a href="' + url_for('.register_view') + '">Click here to register.</a></p>'
            self._template_args['form'] = form
            self._template_args['link'] = link
            return super(MyAdminIndexView, self).index()
      
        @expose('/logout/')
        def logout_view(self):
            session.pop('logged', None)
            return redirect(url_for('.index'))
    
    
    # views клиентской части  #############################################################
    @app.route('/')
    def index():
        return render_template('index.html')
    
    ########################################################################################  
    
    # Create admin
    admin = admin.Admin(app, 'Админка', index_view=MyAdminIndexView(), base_template='my_master.html')
    
    # Add view
    admin.add_view(MyModelView(User, db.session))
    
    if __name__ == '__main__':
        # Start app
        app.run(debug=True)


    Добавлю:
    пока не изменишь значение app.config['SECRET_KEY'] = '12345678290244' войти на страницу авторизации не получается. постоянно выдает выше указанный Traceback

    ############################################
    Вместо:
    session.update({'logged':True})
    session.modified = True
    указывал:
    session['logged'] = True

    Результат тотже. :(

    !!!!!!!!!!!!!!!!!!!!! РЕШЕНО !!!!!!!!!!!!!!!!!!!!!!

    Нужно просто в файле ...\app\templates\admin\index.html сменить:

    {% if current_user.is_authenticated() %}
    на
    {% if session.logged %}

    Единственно что хотелось бы узнать у знающих людей насколько безопасен данный метод???
    Ответ написан
  • Как вызывать фьюшки из темплея?

    @89109983838 Автор вопроса
    Спасибо! буду работать над терминологией и более внимательно читать ман...
    Ответ написан