Untitled
unknown
plain_text
2 years ago
2.9 kB
8
Indexable
from django.db import models from django.contrib.auth.models import User from django.db.models.signals import post_save from ckeditor.fields import RichTextField from django.utils import timezone # Create a user profile model class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) score = models.IntegerField(default=0) bio = models.TextField(max_length=500, blank=True) date_modified = models.DateTimeField(User, auto_now=True) profile_image = models.ImageField(null=True, blank=True, upload_to="images/") def __str__(self): return self.user.username # create profile when new user signs up def create_profile(sender, instance, created, **kwargs): if created: user_profile = Profile(user=instance) user_profile.save() post_save.connect(create_profile, sender=User) class Lesson(models.Model): title = models.CharField(max_length=100) details = models.CharField(max_length=100) content = RichTextField(blank=True, null=True) lesson_image = models.ImageField(null=True, blank=True, upload_to="images/") def __str__(self): return self.title class Quiz(models.Model): lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE) type = models.CharField(max_length=100, default="quiz", null=False, blank=False) question = RichTextField(null=False, blank=False) answer = models.CharField(max_length=100, null=False, blank=False) created_at = models.DateTimeField( default=timezone.now) def __str__(self): return self.type class Assessment(models.Model): lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE) type = models.CharField(max_length=100, default="assessment", null=False, blank=False) question = RichTextField(null=False, blank=False) answer = models.CharField(max_length=100, null=False, blank=False) created_at = models.DateTimeField( default=timezone.now) def __str__(self): return self.type class QuizScore(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE) achievements = models.CharField(max_length=100, null=True) score = models.IntegerField(default=0) created_at = models.DateTimeField( default=timezone.now) def __str__(self): return f"{self.user.username} - {self.lesson.title}" class AssessmentScore(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE) achievements = models.CharField(max_length=100, null=True) score = models.IntegerField(default=0) created_at = models.DateTimeField( default=timezone.now) def __str__(self): return f"{self.user.username} - {self.lesson.title}"
Editor is loading...
Leave a Comment