0

こんにちは、読んでくれてありがとう!

私は Django の非常に新しいユーザーです。フレームワーク web の使い方を学ぶために、基本的な web から django に移行することにしました。私はdjangoチュートリアルを行いましたが、私のプロジェクトでは...方法はまったく面倒ではありません。

全体の概要を把握できるように、最初に私のプロジェクトについて簡単に説明します。私の基本的な Web は、ホームページと、さまざまなパラメーター (室温など) を変更したり、センサー データを確認したりできるセクションで構成されています。

これで、ホームページと温度制御セクションが実行されました (修正するものはほとんどありませんが、正しくレンダリングされています)。ホームページのすべてのセクションをボタンでリンクしたいと思います。これは私のホームページのテンプレートです:

{% extends 'base.html' %}
{% block content %}
<h1>Here goes a title</h1>
    <p>A welcome message here...</p>
    <h2>please select an action</h2>                                                                
    <div id="column_left" class="column">                                                         
    {% for action in actions_list_left %}                                                     
        <div id="action_box1{{ forloop.counter }}" class="action_box">                            
            <input type="button" onclick= " HELP HERE!! "                   
            id= "{{ action.action_name }}_sel" class="action_button">                             
            <div id="{{ action.action_name }}_desc" class="action_desc">                          
                {{ action.description }}                                                          
            </div>                                                                                
        </div>
    {% endfor %}
    </div>                                                                                          
<!--I ommit the right column, containing more actions...-->
{% endblock %}

「アクション」モデル フィールドを使用して、他のセクションにリンクしたいと考えています。私の考えは、アクション名フィールドをそのセクションの URL として使用することです (一般的な「モデル」の方法で行うため)。たとえば、ホームページが localhost:8000/ にあり、アクション名が「temp」の場合、関連付けられたボタンを localhost:8000/temp にリンクして、適切なテンプレートをレンダリングしたいと考えています。

私はurls.pyの問題だと思うので、ここに私のurlsファイルを投稿します(インポート行なし)...

urls.py

admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),                                                    
    url(r'^$', include('principal.urls')),
    url(r'^temp/', include('temp.urls')),     
)

プリンシパル/urls.py

urlpatterns = patterns('',
    url(r'^$', 'principal.views.home', name='home'),
)

temp/urls.py

urlpatterns = patterns('',
url(r'^$', 'temp.views.index', name='temp_index'),
     url(r'^(?P<pk>\d+)/$',
     DetailView.as_view(
         model=Room,
         template_name='temp/roomTemp.html')),
)

他のスレッドで読んだいくつかのアイデアを試しました...

{% url temp:index %}

これは NoReverseMatch エラーをスローしました...「temp」は登録された名前空間ではありません。次に、これをどのように取得するかをグーグルで検索し、urls.py で次の行を変更しました。

url(r'^temp/', include('temp.urls', namespace='temp')),

また、temp/urls.py で次の行を変更しました。

url(r'^$', 'temp.views.index', name='temp'),

両方のページは正常にレンダリングされますが、ボタンが機能しません (何もしません)... 非常に単純なはずですが、すべての URL が少し複雑に思えます (ちなみに、構文は makefile mordor ファイルのようになる場合があります)。 :P). 私はDjango 1.3を使用しています

どんな助けでも本当に感謝しています。また、「良い django コーダー」のコメントや説明は、同じ間違いを繰り返さないために非常に役立ちます。

前もって感謝します、

ファン

編集:誰かが役に立つと思った場合に備えて、ここにコードの修正を投稿します:

<form action="{% url action.action_url %}">
    <input type="submit" id="{{ action.action_name }}_sel" value="" class="action_button">
    <div id="{{ action.action_name }}_desc" class="action_desc">
        {{ action.description }}
    </div>
</form>
4

1 に答える 1

0

URL名前空間を使用する必要がない場合は、これを行うことができます

urls.py

admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),                                                    
    url(r'^$', include('principal.urls')),
    url(r'^temp/', include('temp.urls')),     
)

temp/urls.py

urlpatterns = patterns('',
url(r'^$', 'temp.views.index', name='temp_index'),
    url(r'^(?P<pk>\d+)/$',
        DetailView.as_view(
        model=Room,
        template_name='temp/roomTemp.html')),
)

そしてテンプレで

{% url 'temp_index' %}

それがうまくいくことを願っています。

于 2013-10-01T11:10:05.130 に答える