35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from django.db import models
|
|
from django.contrib.auth.models import User
|
|
|
|
class Assignment(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
description = models.TextField()
|
|
due_date = models.DateTimeField()
|
|
|
|
def __str__(self):
|
|
return self.title
|
|
|
|
class Exercise(models.Model):
|
|
assignment = models.ForeignKey(Assignment, related_name='exercises', on_delete=models.CASCADE)
|
|
question = models.TextField()
|
|
answer = models.TextField()
|
|
|
|
def __str__(self):
|
|
return self.question
|
|
|
|
class Submission(models.Model):
|
|
exercise = models.ForeignKey(Exercise, on_delete=models.CASCADE)
|
|
student = models.ForeignKey(User, on_delete=models.CASCADE)
|
|
submitted_answer = models.TextField()
|
|
is_correct = models.BooleanField(default=False)
|
|
|
|
def __str__(self):
|
|
return f'{self.student.username} - {self.exercise.question}'
|
|
|
|
class Hint(models.Model):
|
|
exercise = models.ForeignKey(Exercise, related_name='hints', on_delete=models.CASCADE)
|
|
hint_text = models.TextField()
|
|
|
|
def __str__(self):
|
|
return self.hint_text
|