2013-10-24 3 views
1

Мне нужно отобразить в сообщении шаблона и имени пользователя, который написал это сообщение. Модель «post» имеет ForeignKey для пользователя.django получить связанный внешний ключ в шаблоне

{% for post in post_list %} 
    <tr> 
     <td>{{ post.user_name }}</td> 
     <td>{{ post.user_name }}</td> 
     <td>{{ post.post_user.user_name }}</td> 
     <td>{{ post.post_content }}</td>     
    </tr> 
{% endfor %} 



class user(models.Model): 
    user_name = models.CharField(max_length=25) 

class post(models.Model): 
     post_content = models.CharField(max_length=65000) 
     post_user = models.ForeignKey(user) 

ни один способ, который я пытался не работает

ответ

5

{{ post.post_user.user_name }} не является правильным.

2

<td>{{ post.post_user.user_name }}</td> Должно быть победителем.

Что выводится для каждого из этих вариантов?

Попробуйте использовать |pprint фильтр, чтобы увидеть, что происходит:

{{ post|pprint }} 
{{ post.post_user|pprint }} 
1
{{ post|pprint }} 
{{ post.post_user|pprint }} 
{{ post.post_user.user_name|pprint }} 
{{ post|pprint }} 

<post: post object> <user: user object> '1' <post: post object>

это мои взгляды

try: 
      post_list = post.objects.select_related().filter(post_thread_id = thread_obj.id).order_by('-post_date') 
     except: 
      post_list = False     
     c = { 
      'thread': thread_obj, 
      'post_list': post_list, 
      'user_login' : user_login, 
      'user_name' : user_name, // user name which is login 
      } 
     c.update(csrf(request)) 
     return render_to_response("show_thread.html", c) 
Смежные вопросы