【发布时间】:2013-10-20 21:23:32
【问题描述】:
我试图让用户在注册后能够创建和编辑他们的个人资料。我正在使用模型表格。我需要做的是用当前用户填写雇主模型字段。
这是我的看法:
def update_profile(request, username):
if request.method == 'POST':
edit_profile_form=EditProfileForm(request.POST)
if edit_profile_form.is_valid():
editprofile = edit_profile_form.save(commit=False)
editprofile.employer = request.user.get_profile()
editprofile.save()
edit_profile_form = EditProfileForm()
context = {'edit_profile_form':edit_profile_form,}
return render(request, 'pandaboard/editprofile.html', context)
这是我的模型:
class Profile(models.Model):
employer = models.ForeignKey(User)
company_name = models.CharField(max_length=100)
company_description = models.TextField()
company_website = models.URLField(max_length=200, blank=True)
contact_email = models.EmailField(max_length=100)
contact_name = models.CharField(max_length=100)
def __unicode__(self):
return self.company_name
这是我的模型表格
from django.forms import ModelForm
from pandaboard.models import JobPost, Profile
from django.contrib.auth.models import User
class EditProfileForm(ModelForm):
class Meta:
model = Profile
fields = ['company_name','company_description','company_website','contact_email','contact_name']
【问题讨论】:
-
EditProfileForm是 Profile 的 ModelForm 吗?请发布您的表单类。 -
好的,我添加了我的模型表单
-
更新模型时,通常您会将模型表单交给模型实例,以使用模型中的现有数据预填充表单。那是你需要做的吗?还是您不想这样做,而是需要将当前用户注入表单?
-
我实际上需要同时做这两件事。但是这个表格是用来更新已经存在的模型的。
-
明白了。我将发布一个如何做到这一点的示例。
标签: django django-models django-views django-forms