2012-07-27 1 views
0

J'essaie de déterminer ce que je devrais inclure dans le modèle ci-dessous afin d'extraire les données insérées dans le champ «quote» du modèle ci-dessous. Actuellement, rien n'apparaît dans le modèle. Aucun conseil?Comment accéder aux données d'un profil utilisateur étendu dans le modèle?

modèle

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;"}), 
     } 

vue

@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)) 

modèle

{{user.quote}} 

Répondre

1

Essayez cette

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

quote n'est pas domaine de User modèle, donc premier accès UserProfile instance puis accéder quote.

+0

a changé l'endif en endfor, mais fonctionne très bien! – sharataka

+0

ohhh ... merci, c'était juste une faute de frappe. – Ahsan

Questions connexes