You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
47 lines
1.5 KiB
from django.db import models
|
|
from django.conf import settings
|
|
from enum import Enum
|
|
|
|
# Create your models here.
|
|
class PostState(Enum):
|
|
PUBLISHED = 1
|
|
DRAFT = 2
|
|
PROGRAMMED = 3
|
|
|
|
class Post(models.Model):
|
|
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
|
title = models.CharField(max_length=200)
|
|
body = models.CharField(max_length=10000)
|
|
url = models.CharField(max_length=200)
|
|
date = models.DateTimeField('date published')
|
|
state = models.IntegerField(default=0)
|
|
image_url = models.CharField(max_length=100)
|
|
# state: posted, draft, waiting for submission
|
|
# image
|
|
def __str__(self):
|
|
return self.title
|
|
|
|
class Comment(models.Model):
|
|
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
|
|
post = models.ForeignKey(Post, on_delete=models.CASCADE, null=True)
|
|
parent_comment = models.ForeignKey("self", on_delete=models.CASCADE, null=True)
|
|
body = models.CharField(max_length=100)
|
|
votes = models.IntegerField(default=0)
|
|
date = models.DateTimeField('date published')
|
|
def __str__(self):
|
|
return self.content
|
|
|
|
class Player(models.Model):
|
|
name = models.CharField(max_length=100)
|
|
post = models.ForeignKey(Post, on_delete=models.CASCADE)
|
|
image_url = models.CharField(max_length=100)
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
# photo
|
|
|
|
class Tag(models.Model):
|
|
name = models.CharField(max_length=100)
|
|
post = models.ForeignKey(Post, on_delete=models.CASCADE)
|
|
def __str__(self):
|
|
return self.name
|
|
|