django - 如何使用请求数据在基于 Django 类的通用 createview 上设置初始数据

标签 django django-forms django-generic-views django-class-based-views

我为我的模型使用了 Django 的通用 createview

from myproject.app.forms import PersonForm
class PersonMixin(object):
    model = Person
    form_class = PersontForm

class PersonCreateView(PersonMixin, CreateView):
    pass

这非常适合使用我的自定义表单显示 Person 的创建 View 。但是,我在表单中有一个字段,我想用一个值预填充它。我找到了这个答案:Set initial value to modelform in class based generic views

但是,我预先填充的值来自 request.user 的配置文件。如何访问 PersonCreateView 中的请求并将其传递给表单?

最佳答案

在任何类方法中,您都可以使用 self.request 访问请求。所以你的用户资料可以通过 self.request.user 访问。

基于您提供的链接,您将能够在 get_initial 方法中使用 self.request.user 来设置值。

IE。

def get_initial(self):
    return { 'value1': self.request.user }

关于django - 如何使用请求数据在基于 Django 类的通用 createview 上设置初始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13180116/

相关文章:

当检索到的电子邮件与现有用户的电子邮件匹配时,django allauth facebook 重定向到注册?

python - Django:使用外键保存动态表单

python - Django 内联表单集将始终创建新对象而不是更新它们

python - 从基于类的通用 View 手动获取响应

Django auth_view 和通用的基于类的 View

python - 无法从另一台 Windows 机器访问本地 ubuntu 服务器上的 Django 服务器

django - Heroku/Django : Could not import user-defined GEOMETRY_BACKEND "geos"

python - 动态更新 ModelForm 的 Meta 类

python - 使用 POST 数据向用户确认通用 FormView POST 成功

python - 为什么 Django 返回 Django object is not iterable 错误?