Многократный ввод данных в Django ORM

Я пытался создать способ, при котором моя база данных Django будет хранить данные в течение 7 дней подряд, потому что я хочу использовать ее для построения недельного графика, но проблема в том, что в Django нет поля даты и времени, которое бы это делало.

В принципе, я хочу, чтобы каждый раз, когда я нажимаю на ссылку, я сохранял количество переходов по ссылке и сохранял дату, когда была нажата конкретная ссылка, но при сохранении я получаю нулевую ошибку, и из-за этой ошибки я также не могу создать недельный график анализируя количество кликов, я хочу сохранить ежедневное количество кликов в течение семи дней, но у меня ошибка null

Вы здесь пытаетесь сохранить None/NULL в базе данных поля, значение которых не может быть равно нулю, вы можете сделать их обнуляемыми с помощью:

class SevenDayData(models.Model):
    day1_date = models.DateField(null=True, default=None)
    day1_value = models.CharField(null=True, max_length=20)

    day2_date = models.DateField(null=True, default=None)
    day2_value = models.CharField(null=True, max_length=20)

    day3_date = models.DateField(null=True, default=None)
    day3_value = models.CharField(null=True, max_length=20)

    day4_date = models.DateField(null=True, default=None)
    day4_value = models.CharField(null=True, max_length=20)

    day5_date = models.DateField(null=True, default=None)
    day5_value = models.CharField(null=True, max_length=20)

    day6_date = models.DateField(null=True, default=None)
    day6_value = models.CharField(null=True, max_length=20)

    day7_date = models.DateField(null=True, default=None)
    day7_value = models.CharField(null=True, max_length=20)

    # updating the model each time the row is saved
    updated_at = models.DateTimeField(auto_now=True)

Но модель не должна быть озабочена тем, как вводить данные, она должна сосредоточиться на том, как хранить данные. Вы просто сохраняете отдельные записи, например:

class DayData(models.Model):
    day_date = models.DateField()
    day_value = models.CharField(max_length=20)

таким образом, вы вставляете отдельные данные.

Если вы хотите получить данные за последние семь дней, вы можете запросить их с помощью:

DayData.objects.filter(day_date__gte=datetime.now().date()-timedelta(days=7))

или, если вы хотите, чтобы последние семь записей содержали:

DayData.objects.order_by('-day_date')[:7]
Вернуться на верх