在保存其django ModelForm之前,将模型用户字段设置为当前登录的用户 [英] Set a models user field to the current logged in user before saving its django ModelForm

查看:149
本文介绍了在保存其django ModelForm之前,将模型用户字段设置为当前登录的用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个如下所示的模型窗体

 类JobForm(ModelForm):
class Meta:
model = Job
exclude =('date_added','date_modified','owner','status','tags','slug','winner_tech','completiondate')

所有者字段是一个与Django用户模型链接的外键,它被排除在表单中。
在我保存表单之前,我尝试将所有者字段设置为当前登录的用户。
我的保存功能包含在以下代码中。

 

def createJob )
bix_user = getBixUser(request.user)
如果request.method =='POST':
form = JobForm(request.POST)
form.fields ['owner '] = bix_user
如果form.is_valid():
form.save()

返回HttpResponseRedirect('/ home')
else:
....

我很确定我做错了事情。
我没有和我的django方面保持一段时间,所以我会感谢任何帮助。

解决方案

我总是覆盖 save()方法并添加一个用户。



像这样:

 类JobForm(ModelForm):
def save(self,user,commit = True):
job = ModelForm。 save(commit = False)
job.owner = user
如果提交:
job.save()
返回作业
pre>

i have a model form as so below

class JobForm(ModelForm):
    class Meta:
        model = Job
        exclude = ('date_added', 'date_modified','owner','status','tags','slug','winning_tech','completiondate')

The owner field is a foreignKey linked to the Django User model and it's excluded from being rendered in the form. I am trying to set the owner field to the current logged in user before i save the form. My save function is contained in the following code.


def createJob(request):
  bix_user=getBixUser(request.user)
  if request.method == 'POST':
      form = JobForm(request.POST)
      form.fields['owner']=bix_user
      if form.is_valid():
         form.save()

      return HttpResponseRedirect('/home')
 else:
        ....

I am very sure that i am doing the wrong thing. I have not been in touch with my django side for a while so i would appreciate any help.

解决方案

I always overwrite the save() method and add a user to it.

Something like this:

class JobForm(ModelForm):
    def save(self, user, commit=True):
        job = ModelForm.save(commit=False)
        job.owner = user
        if commit:
            job.save()
        return job

这篇关于在保存其django ModelForm之前,将模型用户字段设置为当前登录的用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆