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.
37 lines
1.1 KiB
37 lines
1.1 KiB
from django.db import models |
|
from django.utils import timezone |
|
import re |
|
|
|
|
|
class Post(models.Model): |
|
"""Класс записи в блоге.""" |
|
|
|
title = models.CharField(max_length=250) |
|
text = models.TextField() |
|
pub_date = models.DateTimeField("date published") |
|
|
|
def __str__(self): |
|
return self.title |
|
|
|
# def save(self, *args, **kwargs): |
|
# self.text = re.sub(r"(\n.+?\n)", r"<p>\1</p> ", self.text) |
|
# self.text = re.sub(r"(\*(.+?)\*)", r"<strong>\2</strong>", self.text) |
|
# super(Post, self).save(*args, **kwargs) |
|
|
|
class Meta: |
|
verbose_name = "Статья" |
|
verbose_name_plural = "Статьи" |
|
|
|
|
|
class Image(models.Model): |
|
"""Изображение в посте. |
|
|
|
Пост может иметь несколько картинок. При удалении поста удаляются |
|
все изображения к нему относящиеся. |
|
|
|
""" |
|
|
|
slug = models.CharField(max_length=250, blank=True, null=True) |
|
image = models.ImageField() |
|
upload_date = models.DateTimeField(default=timezone.now) |
|
post = models.ForeignKey(Post, on_delete=models.CASCADE)
|
|
|