繁体   English   中英

只有获得批准的用户才能在 django 中发布博客

[英]Only approved users should post blogs in django

我已经使用 Django 构建了一个基于博客的 Web 应用程序,用户可以在其中登录并撰写文章,这些文章在管理员批准后发布。 但是现在所有用户都可以发布文章。 我只希望那些用户发布被批准的文章。 我正在使用默认的 Django 用户 model。 从用户我只创建一个配置文件 model。 我的用户 models.py 是:

from django.db import models
from django.contrib.auth.models import User
from PIL import Image
# Create your models here.
class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='default.jpg', upload_to='profile_pic')
    posting_post  = models.BooleanField(default=False)

    def __str__(self):
        return f'{self.user.username} Profile'

    def save(self , *args, **kwargs):
        super().save()

我的创建后视图是:

class PostCreateView(TagMixin, LoginRequiredMixin, CreateView):
    model = Post
    fields = ['title', 'content', 'image',]


    def form_valid(self, form):
        form.instance.author = self.request.user
        form.save()
        return HttpResponseRedirect('admin-approval')

我的 html 用于创建帖子是:

 {% if user.is_authenticated %}
        <li class="nav-item">
          <a class="nav-link" href="{% url 'post-create'%}">New Post</a>
        </li>
        <li class="nav-item">

很简单,添加一个 BooleanField can_post然后当用户登录时,以与处理profile_image相同的方式处理它,然后在模板中的 it 条件中检查它。

在博客文章 model 中添加一个 boolean 字段,命名为是否批准,并将默认设置为 False,并在您的视图中排除用户查询,其中批准=False。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM