【问题标题】:How do I access data from an extended user profile in the template?如何从模板中的扩展用户配置文件访问数据?
【发布时间】:2012-07-25 18:43:53
【问题描述】:

我正在尝试确定我应该在下面的模板中包含什么,以便提取插入到下面模型的“报价”字段中的数据。目前,模板中没有显示任何内容。有什么建议吗?

型号

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)
    #facebook = models.CharField('Facebook profile page', max_length = 200, 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))

模板

{{user.quote}}

【问题讨论】:

    标签: django templates view model


    【解决方案1】:

    试试这个

    {% for profile in user.userprofile_set.all %}
       {{profile.quote}}
    {% endfor %}  
    

    quote 不是User 模型的字段,所以首先访问UserProfile 实例然后访问quote

    【讨论】:

      猜你喜欢
      • 2010-09-30
      • 2017-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2012-08-29
      • 1970-01-01
      相关资源
      最近更新 更多