[英]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.