Ответы пользователя по тегу Django
  • Как сгенерировать билеты при создании матча?

    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
    Ответ написан