Python 如何将当前登录用户分配给django中的models对象
我有一个用户,他将创建一个公司简介。该用户由django的django.contrib.auth.models创建。因此,问题是将当前登录的用户分配给公司配置文件的用户。 my models.py是:Python 如何将当前登录用户分配给django中的models对象,python,django,Python,Django,我有一个用户,他将创建一个公司简介。该用户由django的django.contrib.auth.models创建。因此,问题是将当前登录的用户分配给公司配置文件的用户。 my models.py是: class Company_Profile(models.Model): user = models.ForeignKey(User) logo = models.ImageField(_('Company Logo'), upload_to='image', null=True, bla
class Company_Profile(models.Model):
user = models.ForeignKey(User)
logo = models.ImageField(_('Company Logo'), upload_to='image', null=True, blank=True)
address = models.TextField(_('Contact Address'), max_length=50)
phone_no = models.IntegerField(_('Contact No'), max_length=12)
我的forms.py是:
class Company_Prof(forms.ModelForm):
class Meta:
model = Company_Profile
fields = ('logo','address','phone_no')
我对公司简介的看法是:
@login_required()
def company_prof(request):
if request.method == 'POST':
comp_prof = Company_Prof(request.POST or None)
comp_prof.user = User.objects.get(username=request.user)
if comp_prof.is_valid():
save_prof = comp_prof.save(commit=False)
save_prof.save()
messages.success(request, 'Thank you for Registration')
return HttpResponseRedirect('company/'+str(save_prof.id))
else:
comp_prof =Company_Prof()
variables = RequestContext(request, {
'comp_form': Company_Prof()})
return render_to_response("comp_profile.html",
locals(),
context_instance = RequestContext(request))
请帮帮我
不对
不对
不对
不对
两件事:第一,使用commit=False保存对象将创建对象,但在调用save with commit=True之前不会将其提交到数据库。因此,可以在这两条线之间修改对象 第二:当前用户对象在您的请求中作为“用户”可用。调用request.user将返回用户对象 因此,对于您的情况,您需要在再次调用save之前分配user对象,如下所示:
save_prof = comp_prof.save(commit=False)
save_prof.user = request.user
save_prof.save()
两件事:第一,使用commit=False保存对象将创建对象,但在调用save with commit=True之前不会将其提交到数据库。因此,可以在这两条线之间修改对象 第二:当前用户对象在您的请求中作为“用户”可用。调用request.user将返回用户对象 因此,对于您的情况,您需要在再次调用save之前分配user对象,如下所示:
save_prof = comp_prof.save(commit=False)
save_prof.user = request.user
save_prof.save()
两件事:第一,使用commit=False保存对象将创建对象,但在调用save with commit=True之前不会将其提交到数据库。因此,可以在这两条线之间修改对象 第二:当前用户对象在您的请求中作为“用户”可用。调用request.user将返回用户对象 因此,对于您的情况,您需要在再次调用save之前分配user对象,如下所示:
save_prof = comp_prof.save(commit=False)
save_prof.user = request.user
save_prof.save()
两件事:第一,使用commit=False保存对象将创建对象,但在调用save with commit=True之前不会将其提交到数据库。因此,可以在这两条线之间修改对象 第二:当前用户对象在您的请求中作为“用户”可用。调用request.user将返回用户对象 因此,对于您的情况,您需要在再次调用save之前分配user对象,如下所示:
save_prof = comp_prof.save(commit=False)
save_prof.user = request.user
save_prof.save()