为了账号安全,请及时绑定邮箱和手机立即绑定

改变 Django 形式

改变 Django 形式

慕尼黑8549860 2023-06-06 16:14:00
我如何调整我的代码,以便用户不能为新帖子选择另一个用户。我想让登录用户自动添加为作者。我尝试将 views.py 中的字段部分设置为内容字段,但它不起作用models.pyclass post(models.Model):    author = models.ForeignKey(User, on_delete=models.CASCADE)    content = models.CharField(max_length=140)views.pyclass CreatePostView(CreateView):    model = post    fields = '__all__'    template_name = 'users/create.html'我的表单.html<form method="post">    {% csrf_token %}    {{ form.as_p }}    <input type="submit" value="Login"></form>
查看完整描述

3 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

class CreatePostView(CreateView):

    model = post

    template_name = 'users/create.html'

    fields = ['content']


    def form_valid(self, form):

        form.instance.author = self.request.user

        return super().form_valid(form)


查看完整回答
反对 回复 2023-06-06
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

您需要做三件事:

  1. 保护页面,使匿名用户无法访问它,使用LoginRequiredMixin

  2. 从字段中删除用户

  3. 提交表单后在提交的表单中输入当前用户,使用form_valid方法

from django.views.generic.edit import CreateView

from django.contrib.auth.mixins import LoginRequiredMixin

class CreatePostView(LoginRequiredMixin, CreateView):

    model = Post

    fields = ["content"]

    template_name = "create.html"

    def form_valid(self, form):

        form.instance.user = self.request.user

        return super().form_valid(form)


查看完整回答
反对 回复 2023-06-06
?
ITMISS

TA贡献1871条经验 获得超8个赞

request.user.username 



查看完整回答
反对 回复 2023-06-06
  • 3 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信