所以我有一个模型,它包括:

class Place(models.Model):
    ....
    created_by = models.ForeignKey(User)

我的看法是这样的:

class PlaceFormView(CreateView):
    form_class = PlaceForm

    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(PlaceFormView, self).dispatch(*args, **kwargs)

有没有办法让我访问请求.用户并将创建的设置设置为该用户?我查阅了文件,但似乎找不到任何关于这方面的提示.

`

推荐答案

重写form_valid可以节省表单中的哪一个呢?自己保存它,想做什么就做什么,然后进行重定向.

class PlaceFormView(CreateView):
    form_class = PlaceForm

    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(PlaceFormView, self).dispatch(*args, **kwargs)

    def form_valid(self, form):
        obj = form.save(commit=False)
        obj.created_by = self.request.user
        obj.save()        
        return http.HttpResponseRedirect(self.get_success_url())

Django相关问答推荐

使用Django ORM在不相关的模型之间进行左外连接?

DRF中是否有有效的更新有序数据的算法?

创建用户/将用户登录到客户端服务器的标准OAuth/OIDC流程是什么?

如何在uwsgi中创建单个日志(log)文件?

Django:添加第二个';详细';用于检索额外信息的视图

访问默认的 django-allauth 登录和注册页面时出现 TemplateSyntaxError

如何在 ModelViewSet 逻辑中读取查询字符串值?

如何根据查询集中的条件返回多个聚合?

在 settings.py 中指定 Django 测试数据库名称

如何使用 jQuery 建立 Django 网站

Django-Registration:邮箱作为用户名

django 用一个提交按钮提交两种不同的表单

Django Admin - 覆盖自定义表单字段的小部件

Django中视图的多个decorator :执行顺序

Python/Django:从 values_list() 创建一个更简单的列表

在 Django 管理页面中注册应用程序中的每个表/类

导入错误无法在windows环境下导入名称execute_manager

Django将整数模型字段的范围设置为约束

关闭 Django Rest Framework ModelViewSet 的自动分页

Django 测试客户端方法覆盖标头