caFICteria-aaS/web/lazaro_quotes/models.py

49 lines
1.3 KiB
Python

from django.db import models
from django.forms.models import model_to_dict
class Suggester(models.Model):
name = models.CharField(max_length=254)
email = models.EmailField(max_length=254, unique=True)
def __str__(self):
return self.email
class Author(models.Model):
name = models.CharField(max_length=254)
slug = models.CharField(max_length=24, unique=True)
def __str__(self):
return self.name
class Quote(models.Model):
text = models.TextField()
author = models.ForeignKey(
Author, on_delete=models.CASCADE)
suggester = models.ForeignKey(
Suggester, on_delete=models.SET_NULL, null=True, blank=True)
def __str__(self):
return self.text
def as_dict(self):
result = model_to_dict(self, fields=["text"])
result["author"] = model_to_dict(self.author, exclude=["id"])
result["suggester"] = model_to_dict(
self.suggester, exclude=["id"]) if self.suggester else None
return result
class Suggestion(models.Model):
text = models.TextField()
context = models.TextField(null=True, blank=True)
author_name = models.CharField(max_length=254)
suggester = models.ForeignKey(
Suggester, on_delete=models.CASCADE)
def __str__(self):
return self.text