2012-01-24 10 views
0

Django newbieは仕事中です。私はいくつかのポインタを使うことができます。私はdjango-profileを使用しており、views.profile_detailによって処理されるプロファイルページで作業しています。私が直面している問題は、このビューを使用してテンプレートに別の変数を配置できないということです。ここに私のビュー機能は次のとおりです。django-profileはテンプレートに変数を渡します

def profile_detail(request, username, public_profile_field=None, 
       template_name='profiles/profile_detail.html', 
       extra_context=None): 
""" 
Detail view of a user's profile. 

If no profile model has been specified in the 
``AUTH_PROFILE_MODULE`` setting, 
``django.contrib.auth.models.SiteProfileNotAvailable`` will be 
raised. 

If the user has not yet created a profile, ``Http404`` will be 
raised. 

**Required arguments:** 

``username`` 
    The username of the user whose profile is being displayed. 

**Optional arguments:** 

``extra_context`` 
    A dictionary of variables to add to the template context. Any 
    callable object in this dictionary will be called to produce 
    the end result which appears in the context. 

``public_profile_field`` 
    The name of a ``BooleanField`` on the profile model; if the 
    value of that field on the user's profile is ``False``, the 
    ``profile`` variable in the template will be ``None``. Use 
    this feature to allow users to mark their profiles as not 
    being publicly viewable. 

    If this argument is not specified, it will be assumed that all 
    users' profiles are publicly viewable. 

``template_name`` 
    The name of the template to use for displaying the profile. If 
    not specified, this will default to 
    :template:`profiles/profile_detail.html`. 

**Context:** 

``profile`` 
    The user's profile, or ``None`` if the user's profile is not 
    publicly viewable (see the description of 
    ``public_profile_field`` above). 

**Template:** 

``template_name`` keyword argument or 
:template:`profiles/profile_detail.html`. 

""" 
user = get_object_or_404(User, username=username) 
# accuracy = '' 
try: 
    profile_obj = user.get_profile() 
    accuracy = str(profile_obj.number_of_answers/profile_obj.number_of_answers) + '%' 
except ObjectDoesNotExist: 
    raise Http404 
if public_profile_field is not None and \ 
    not getattr(profile_obj, public_profile_field): 
    profile_obj = None 

if extra_context is None: 
    # extra_context = {'accuracy': potato} 
    extra_context = {} 
context = RequestContext(request) 
# context['accuracy'] = 'potato' 
for key, value in extra_context.items(): 
    context[key] = callable(value) and value() or value 

return render_to_response(template_name, 
          {'profile': profile_obj}, 
          # { 'profile': profile_obj, 'accuracy': accuracy}, 
          # locals(), 
          context_instance=context) 

、ここでは私のテンプレートです:値プロファイルから渡されている場所

{% extends "base.html" %} 
{% load i18n %} 

{% block content %} 
<p><strong>Level:</strong><br>{{ profile.level }}</p> 
<p><strong>Bounty Points:</strong><br>{{ profile.total_bounty_points }}</p> 
<p><strong>Number of questions:</strong><br>{{ profile.number_of_questions_asked }}</p> 
<p><strong>Number of replies:</strong><br>{{ profile.number_of_replies }}</p> 
<p><strong>Number of answers:</strong><br>{{ profile.number_of_answers }}</p> 
<p><strong>Accuracy:</strong><br>{{ accuracy }}</p> 
<p><strong>Number of times reported:</strong><br>{{ profile.reported_by_others }}</p> 

{% endblock %} 

は、私が知っているかもしれませんか?それは辞書{'profile':profile_obj}かコンテキストからのものですか?私は両方をコメントアウトしようとしましたが、テンプレートはまだうまく描画されます。

私はテンプレートに精度という新しい変数を作成しようとしましたが、レンダリングすることができず、単に静かに失敗します。 TEMPLATE_STRING_IF_INVALID = '%s'を設定ファイルに追加しました。これにより、精度変数が見つからないことがわかりました。私が間違っていたことを知ることができますか?

アドバイスをいただければ幸いです!ありがとう:)

+0

あなたが何を求めているのか分かりません。これがサードパーティのアプリケーションからのビューであれば、あなた自身で変更するべきではありません.'explore_context'引数のポイントは、urlconfから余分な値を渡すことができるということです。これは、精度があるはずです。 –

+0

@DanielRosemanコメントをいただきありがとうございます。私はこのURLを試しました:)私はこのURLを試しました:)(r '^(?P \ w +)/ $'、 views.profile_detail、extra_context = {'正確さ' }、name = 'profiles_profile_detail')、これは働いていないと思われるので、変数{{accuracy}}を直接使用できるはずです。再度、感謝します! – nightscent

答えて

0

私は問題を見つけました!私は間違ったファイル> _ <私のpythonのインストールがデフォルトのディレクトリに書き込まれたとして変更していた。

関連する問題