msyz999明仕亚洲讨教我如许设计django文章的二级批评能否公道?

没有过开辟经历的新手,拜托各位大神辅导一下,我应该怎样改进下面我下面这种二级批评的设计?假如描绘的不够细致,我再补充。

ps: 我的思路,便是一篇文章和一级批评构成一对多的干系,然后一级批评和二级批评又构成一对多的干系。


models.py

class BlogCommentmodels.Model:
    """这是一级批评"""

    user_name = models.CharFieldName, max_length=100  # 指定用户名
    body = models.TextFieldContent  # 批评的主体
    # 将一级批评联络干系对应的文章
    article = models.ForeignKeyArticle, verbose_name=Article,
                                on_delete=models.CASCADE

class SubCommentBlogComment:
    """这是二级批评,承继自一级批评,但是添加了一个parent_comment属性"""

    # 将二级批评联络干系对应的一级批评
    parent_comment = models.ForeignKeyBlogComment, verbose_name=BlogComment,
                                       on_delete=models.CASCADE

froms.py中指定批评的表单

class BlogCommentFormforms.ModelForm:
    """一级批评的表单"""
    class Meta:
        model = BlogComment  # 指定一级批评的model

        fields = [user_name, body]

        widgets = {
            user_name: forms.TextInputattrs={
                required: required,
            },
            body: forms.Textareaattrs={
                required: required,
            },
        }

class SubCommentFormBlogCommentForm:
    """二级批评的表单,承继自一级批评的表单"""
    class Meta:
        model = SubComment  # 订定二级批评的model

        fields = copy.deepcopyBlogCommentForm.Meta.fields

        widgets = copy.deepcopyBlogCommentForm.Meta.widgets

views.py

class CommentPostViewFormView:
    """一级批评视图层"""
    form_class = BlogCommentForm
    template_name = blog/article.html

    def form_validself, form:
        # 保管表单到数据库
        comment = form.savecommit=False
        comment.save
        
        return HttpResponseRedirect/

    def form_invalidself, form:
        # ... 一些提示用户表单输入不同理的信息

class SubCommentViewCommentPostView:
    """二级批评视图层,承继与一级批评视图层"""
    # 粉饰笼罩form_class成二级批评的表单
    form_class = SubCommentForm 

可以如许设计,没有题目,至于更深层级的批评只需求在二级批评表内加上批评人和被批评人的字段中断识别即可。我博客的批评大约便是如许做的。详细结果可以参考:https://www.rapospectre.com/b…。详细完成:https://github.com/bluedazzle…

谢邀

按照你的思路是没有题目的,一级批评是对博客的批评,二级批评真实是对某条博客批评的一个复兴,不论复兴的人是博主还是其他人都算是复兴。

我以为思索二级就可以了,即使QQ空间的说说批评与复兴也就两级,至于反复的复兴只需展现谁复兴谁,然后定工夫排个序就可以了。详细就参考2楼的博客即可。

关于三级、四级的批评,集团以为可以不思索,只需理解批评都是针对博客的,复兴则是针对批评的。嵌套的级数太多会很卡的。

更新于 2016-11-17 19:17

class Commentmodels.Model:
    """批评"""

    user = models.ForeignKeyUser          # 批评用户
    body = models.TextField               # 批评内容
    article = models.ForeignKeyArticle    # 博客
    created_at = ...                        # 批评工夫

class Replymodels.Model:
    """复兴"""
    
    comment = models.ForeignKeyComment    # 批评
    from_user = models.ForeignKeyUser     # 复兴用户
    to_user = models.ForeignKeyUser       # 被复兴用户
    body = models.TextField               # 复兴内容
    created_at = ...                        # 复兴工夫

我大约会如许设计数据库,一篇博客下面会有多个批评,每个批评下面有多个复兴。

假如批评只要2级,大约思路没有题目。
但是你要想,你的二级批评,也是可以被批评的。以是有可以会有三级,四级。。批评。
如许你的设计就会有题目。
这真实是一个比较经典的题目了吧. 不过要是我去设计,我会根据树范型去设计.

(看完/读完)这篇文章有何感想! msyz999明仕亚洲的分享…

发表评论

姓名 *
电子邮件 *
站点