Как установить начальное значение для присутствия всех студентов в системе управления колледжем | django admin inline

Я создаю систему управления колледжем на django, включая такие функции, как викторина, lms, посещаемость и т.д.

Я хочу, чтобы в админке django в режиме inline выводился список всех студентов со статусом = True по умолчанию. Чтобы учителю не нужно было вбивать флажок статуса для каждого ученика, каждый ученик должен присутствовать (статус=True) по умолчанию, а учителю нужно только снять флажок статуса для тех, кто отсутствует. Я много гуглил, но с трудом нашел решение. Вот что я хочу: enter image description here

Как вы можете видеть, все студенты присутствуют Status=True, это должно быть поведение по умолчанию

Моя модель:

class Attendance(models.Model):
    course = models.ForeignKey(settings.COURSE_MODEL, on_delete=models.CASCADE)
    date = models.DateField(default=datetime.now)


class AttendanceStatus(models.Model):
    attendance = models.ForeignKey(Attendance, on_delete=models.CASCADE)
    student = models.ForeignKey(settings.STUDENT_MODEL, on_delete=models.CASCADE)
    status = models.BooleanField()

А вот и администратор.

class AttendanceStatusInline(admin.TabularInline):
    model = AttendanceStatus
    can_delete = False
    fields = [ 'student', 'status' ]
    autocomplete_fields = [ 'student' ]


@admin.register(Attendance)
class AttendanceAdmin(admin.ModelAdmin):
    list_display = [ 'course', 'date']
    autocomplete_fields = ['course']
    inlines = [ AttendanceStatusInline ]

Заранее спасибо.

Как уже писали другие, добавление аргумента "default='True'" к полю вашей модели поможет. В случае, если вы обнаружите, что вам нужно больше, чем "да или нет", но все еще хотите иметь значение по умолчанию, вы можете сделать что-то вроде:

ATTENDANCE_CHOICES = [
    ('Present', 'Present'),
    ('Absent', 'Absent'),
    ('Late', 'Late'),
    ('Excused Absence', 'Excused Absence'),
    ]

class AttendanceStatus(models.Model):
    attendance = models.ForeignKey(Attendance, on_delete=models.CASCADE)
    student = models.ForeignKey(settings.STUDENT_MODEL, on_delete=models.CASCADE)
    status = models.CharField(max_length=100, choices=ATTENDANCE_CHOICES, default=ATTENDANCE_CHOICES[0][0])

Это создаст выпадающий список для вашего поля с выбором по умолчанию в качестве первого варианта в списке, в данном случае 'Present'. Первая строка в каждом кортеже списка вариантов будет сохранена в базе данных. Вторая строка видна пользователю, поэтому вы можете изменить их, если это необходимо.

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