我正在使用模型来扩展用户的配置文件。我希望以前保存的数据在用户决定写入之前显示在表单中。如何在django模板中执行此操作?如何获得默认值以显示在模板与Django?
模型
class UserProfile(models.Model):
user = models.ForeignKey(User, primary_key=True)
quote = models.CharField('About', max_length = 200, null=True, blank=True)
website = models.URLField('Personal website/blog', null=True, blank=True)
class UserProfileForm(ModelForm):
class Meta:
model = UserProfile
fields = ('quote', 'website')
widgets = {
'quote': Textarea(attrs={'cols': 18, 'rows': 7, 'style': "width: 300px;"}),
}
视图
@login_required
def user_profile(request):
user = User.objects.get(pk=request.user.id)
if request.method == 'POST':
upform = UserProfileForm(request.POST)
if upform.is_valid():
up = upform.save(commit=False)
up.user = request.user
up.save()
return HttpResponseRedirect('/accounts/profile')
else:
upform = UserProfileForm()
return render_to_response('reserve/templates/edit_profile.html', locals(), context_instance=RequestContext(request))
模板
{{ upform.as_p}}
我将它改为“upform = UserProfileForm(request.POST,instance = user.get_profile())”。我必须更改模板中的任何内容吗? – sharataka 2012-07-27 14:45:35
您应该向我们展示您的模板,以了解它是否必须更改 – armonge 2012-07-27 20:55:17
@armonge我现在在与表单相关的模板中有上面列出的内容。我不确定如何编辑它以包含默认数据(用户已输入的数据)。 – sharataka 2012-07-27 21:05:43