Как хранить двумерный массив в модели Django

Проблема: Мне нужно хранить двумерный массив в одном из полей таблицы.

Пример

id:1

Имя_учителя: "Амит"

время: [[9:00am, 2:00pm], [2:00pm, 6:00pm], [6:00am, 9:00pm]]. # Нужно хранить 2-D массив вида нескольких меток времени в поле,

код находится здесь:

Model.py

class ScheduleClassification(models.Model):
    vendor_id = models.ForeignKey(Vendor, on_delete=models.CASCADE, default=None, null=True)
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=100)
    description = models.CharField(max_length=1000)
    start_date = models.DateField(auto_now_add=True)
    end_date = models.DateField(auto_now_add=True)
    duration = models.CharField(max_length=20, default="forever")
    day_type = models.CharField(max_length=20)
    time = #how do i make this field

как я могу хранить это, пожалуйста, дайте мне знать лучший способ сделать это. в django models

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

class Lesson(models.Model):
   start = models.DateTimeField()
   end = models.DateTimeField()
   duration = models.CharField(max_length=20, default="forever")
   teacher = models.ForeignField(Teacher)
   schedule = models.ForeignField(Schedule)

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

# in the Schedule Class 
def create_array(self):
   array = []
   qs = Lesson.objects.filter(schedule=self)
   for lesson in qs.iterator():
     lesson = [ lesson.start , lesson.end]
     array.append(lesson)  
   return array  

также вы можете сделать эту функцию property, чтобы улучшить ее

Вернуться на верх