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.
63 lines
1.6 KiB
63 lines
1.6 KiB
from django.db import models
|
|
from django.conf import settings
|
|
# 关联对象,实际应用中需要修改
|
|
from article.models import Article as BandObject
|
|
from mptt.models import MPTTModel, TreeForeignKey
|
|
|
|
|
|
class Comment(MPTTModel):
|
|
content = models.TextField()
|
|
parent = TreeForeignKey(
|
|
"self",
|
|
on_delete=models.CASCADE,
|
|
blank=True,
|
|
null=True,
|
|
related_name="children")
|
|
|
|
commenter = models.ForeignKey(
|
|
settings.AUTH_USER_MODEL,
|
|
on_delete=models.CASCADE,
|
|
related_name="commenter",
|
|
verbose_name="评论者"
|
|
)
|
|
|
|
reply = models.ForeignKey(
|
|
to=settings.AUTH_USER_MODEL,
|
|
verbose_name="被评论者",
|
|
blank=True,
|
|
null=True,
|
|
on_delete=models.CASCADE,
|
|
related_name="reply")
|
|
|
|
create_time = models.DateTimeField(
|
|
verbose_name="创建时间",
|
|
auto_now_add=True)
|
|
|
|
last_mod_time = models.DateTimeField(
|
|
verbose_name="修改时间",
|
|
auto_now=True)
|
|
|
|
band_object = models.ForeignKey(
|
|
BandObject,
|
|
verbose_name="评论绑定对象",
|
|
on_delete=models.CASCADE,
|
|
related_name="band_object")
|
|
|
|
is_show = models.BooleanField(
|
|
verbose_name="是否显示",
|
|
default=True,
|
|
blank=False,
|
|
null=False)
|
|
|
|
class MPTTMeta:
|
|
verbose_name = "评论"
|
|
verbose_name_plural = verbose_name
|
|
order_insertion_by = ["create_time"]
|
|
|
|
def __str__(self):
|
|
return self.content
|
|
|
|
class Meta:
|
|
verbose_name = "评论"
|
|
verbose_name_plural = verbose_name
|