• Как починить миграции?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Вероятнее всего, ошибка возникает из-за конфликтов между старыми файлами миграций и измененными моделями.
    Для начала нужно удалить файлы миграций в каждом приложении, но оставить _init_.py.
    Вот эти
    60d335c79ea7a719903022.png

    После этого - дропнуть базу и мигрировать поновой.
    Ответ написан
  • Как получить отфильтрованные данные по клиентам в django?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    С помощью фильтров
    @register.filter
    def get_active_portfolio_items(client):
        return Portfolio.objects.filter(client=client, active=True)

    В шаблоне пройтись как по обычному кверисету.
    {% for port in  i|get_active_portfolio_items%} 
        {{ port}}
    {% endfor %}
    Ответ написан
    Комментировать
  • Как можно исправить ошибку ConnectionAbortedError?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Могу посоветовать использовать redirect:
    return redirect('/some/url/') # Адрес
    ИЛИ
    return redirect('name') # Название ссылки в urls.py
    Ответ написан
    Комментировать
  • Как исправить CSRF token invalid после деаутентификации через AJAX?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Если я правильно понял проблему, то как-то так, если использовать прямо в шаблоне.

    function add_to_cart(id) {
            let token = '{{csrf_token}}';
            $.ajax({
                headers: { "X-CSRFToken": token },
                url: '/add-to-cart/',
                type: 'POST',
                data: {'id':id},
                success: function(data) {
    
                    get_cart()
                    
                },
                failure: function(data) {
                    console.log('Не успешно');
                }
            });
    
        }

    По идее, не вижу проблем, чтобы указывать token / {{csrf_token}} при вызове функции. Тогда ее можно будет вынести в отдельный фай.
    Ответ написан
    Комментировать
  • Как сгенерировать билеты при создании матча?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    По идее, в билетах добавить charfield, куда и будет записываться код билета и в цикле генерировать и сохранять записи.
    Что-то вроде этого
    for line in range(1,10):
    	for place in range(1,50):
    		print(f'Билет на {line}-й ряд, {place}-е место')

    9Pry9YMCTIE.jpg?size=979x512&quality=96&sign=14119bdb09c0682256f9d76c4b0aa345&type=album
    Только вместо принта сохранять в базу.
    Конкретно по реализации, этот код вынести в отдельную функцию и вызывать из метода save у Matches c указанием pk (можно и в самом методе, конечно, но пункт ниже).
    Не обязательно, но желательно - выполнять данную функцию асинхронно, чтобы не "ложить" систему, пока будет идти процесс.
    (Для этого стоит использовать Celery + reddis/rabbitMQ)
    P.s. Цикл in range() не захватывает последнее число (Видно на скрине в примере, задано 50 мест, но последнее - 49)
    Ответ написан
    Комментировать
  • Почему ломается сессия в django?

    AlexNest
    @AlexNest Автор вопроса
    Работаю с Python/Django
    Нужно было в настройках прописать:
    SESSION_SAVE_EVERY_REQUEST = True

    или после изменения
    ...
    request.session.modified
    Ответ написан
    Комментировать
  • Как в Django реализовать обработку заказов?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Навскидку два варианта:
    1. добавить булево поле, с false по умолчанию и обновлять на true при взятии.
    2. Добавить статус выполнения заказа (опубликован, принят, закрыт и т.п)

    (во втором случае можно либо модель отдельную создать и в ней хранить, либо задать статусы в коде)
    Пример
    #models.py
     
    #Django Models ChoiceField    
    class Profile(models.Model):
        # Country Choices
        CHOICES = (
            ('US', 'United States'),
            ('FR', 'France'),
            ('CN', 'China'),
            ('RU', 'Russia'),
            ('IT', 'Italy'),
        )
        username = models.CharField(max_length=300)
        country = models.CharField(max_length=300, choices = CHOICES)
     
        def __str__(self):
            return self.username
    Ответ написан
  • Как сделать многостраничный тест с выбором правильных ответов, с аудиоматериалами и картинками в них?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Тут cookie использовать нужно: https://learn.javascript.ru/cookie
    По хорошему, если планируется полноценный сайт, данные обрабатывать и создавать куки нужно на стороне сервера (php/node.js...), но можно и с помощью jquery.
    После полученные данные сохранить в куки и дальше с ними работать:
    <!DOCTYPE html>
    <html>
    <head>
    	<title>Meter</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    </head>
    <body>
    <form method="POST" id="myForm">
    	<input name="q1" value="1231" id="value1" type="checkbox"  /> 
    	<input name="q1" value="false" id="value1" type="checkbox"  /> 
    	<input name="q1" value="1231" id="value1" type="checkbox"  /> 
    	<input type="button" name="" id="btn" value="1">
    </form>
    
    <script type="text/javascript">
    $( document ).ready(function() {
    	 $('#myForm').find ('input, textearea, select').each(function() {
    	 
    	  
    	  let value = $(this).val()//Получаем значение инпута
    	  if (value == 1231) {//Вместо цифр подставить сравнение с куки
    	  	
    	  	$(this).prop('checked', true);//Установка элементу свойства checked
    	  }
    
    	  
    });
    });
    </script>
    </body>
    </html>
    Ответ написан
    Комментировать