相关疑难解决方法(0)

保存前将数据添加到ModelForm对象

假设我有一个看起来像这样的表单:

forms.py

class CreateASomethingForm(ModelForm):
    class Meta:
        model = Something
        fields = ['field2', 'field3', 'field4']
Run Code Online (Sandbox Code Playgroud)

我希望表单有这三个字段.不过我Something班上也有field1.我的问题是 - field1如果我没有使用ModelForm收集数据,我该如何添加数据.我尝试过这样的事情,但它不起作用,我不确定正确的方法来解决这个问题:

views.py

def create_something_view(request):
    if (request.method == 'POST'):
        # Create an object of the form based on POST data
        obj = CreateASomething(request.POST)
        # ** Add data into the blank field1 ** (Throwing an error)
        obj['field1'] = request.user
        # ... validate, save, then redirect 
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

TypeError: 'CreateAClassForm' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)

在Django中,ModelForm在保存之前将数据分配给对象的正确方法是什么?

django django-forms django-views

26
推荐指数
2
解决办法
1万
查看次数

Django中的request.user

关于request.user在Django中引用了什么,我感到很困惑?它是指auth_user表中的用户名字段还是引用用户模型实例?

我有这个疑问,因为我没能利用来访问模板电子邮件字段{{request.user.username}}或{{user.username}}

所以我在视图文件中做了以下操作

userr = User.objects.get(username=request.user)
Run Code Online (Sandbox Code Playgroud)

并将'userr'传递给模板并访问电子邮件字段为 {{request.user.username}}

虽然它的工作,但我想对它有一些清晰.

谢谢 :)

python email django django-templates django-views

22
推荐指数
2
解决办法
5万
查看次数