2016-11-17 506 views
-1

我剛剛接管了一些用Python/Django編寫的項目管理軟件的開發,它們之前根本沒有使用Python或Django ......Python/Django-將按鈕從一個HTML頁面複製到另一個頁面

在其中一個網頁上顯示幾個按鈕,在應用程序內的另一個頁面上顯示這些按鈕很有用。我可以看到,這些按鈕在budget.html定義與下面的代碼:

{% block page_options %} 
    <a class="button m-r-md" href="{% url 'costing:export_csv' budget.id %}">Export to Excel</a> 
    <a class="button m-r-md" href="{% url 'costing:schedule_of_works_post_dep' budget.id %}" target="_blank">Schedule of works</a> 
    <a class="button m-r-md" href="?pdf=1" target="_blank">PDF</a> 
    <input data-view-url="{% url 'costing:combined_budget' project.id %}?search=" type="text" id="item_search" placeholder="Item search" /> 
{% endblock page_options %} 

其他頁面,在這裏我希望能夠使用他們 - variations.html具有下面的代碼已經在其{%block page_options %}塊:

{% block page_options %} 
    <button class="button modalBtn" name="variation">+ Add variation</button> 

    <a class="button" href="{% url 'costing:add_omit_builder' project.id %}">+ Add group</a> 

    <a class="button" id="scas" data-view-url="{% url 'costing:preview_scas' project.budget_overview.version.id %}" href="{% url 'costing:scas_2_variations' project.budget_overview.version.id %}">+ Standard cost assumptions</a> 

    <!--ERF(17/11/2016 @ 1700) Add buttons to export adds/ omits table to excel --> 


{% endblock page_options %} 

所以,我試圖複製並從第一頁的代碼粘貼到該塊,在第二頁:

{% block page_options %} 
    <button class="button modalBtn" name="variation">+ Add variation</button> 

    <a class="button" href="{% url 'costing:add_omit_builder' project.id %}">+ Add group</a> 

    <a class="button" id="scas" data-view-url="{% url 'costing:preview_scas' project.budget_overview.version.id %}" href="{% url 'costing:scas_2_variations' project.budget_overview.version.id %}">+ Standard cost assumptions</a> 

    <!--ERF(17/11/2016 @ 1700) Add buttons to export adds/ omits table to excel --> 
     <a class="button m-r-md" href="{% url 'costing:export_csv' budget.id %}">Export to Excel</a> 
<a class="button m-r-md" href="{% url 'costing:schedule_of_works_post_dep' budget.id %}" target="_blank">Schedule of works</a> 
<a class="button m-r-md" href="?pdf=1" target="_blank">PDF</a> 
<input data-view-url="{% url 'costing:combined_budget' project.id %}?search=" type="text" id="item_search" placeholder="Item search" /> 


{% endblock page_options %} 

但是當我現在嘗試VI尤因這個頁面在瀏覽器中,我得到一個錯誤網頁,其中說:

NoReverseMatch在/成本/ 5915 /變化/

我不知道爲什麼我收到這個錯誤.. 。我是否需要引用任何對我在HTML文件其他地方複製的代碼中使用的視圖的調用?這兩個HTML文件都在同一個應用程序中,因此共享相同的models.py文件 - 所以我本以爲他們都能夠使用在此應用程序中定義的所有models & views

這是這種情況?如果是這樣,爲什麼我會在變體頁面上看到這個錯誤?

+1

如果你複製和粘貼代碼,你已經做錯了什麼。 –

+0

但是,如果您需要真正的幫助,則需要發佈* full *錯誤和回溯。 –

回答

0

根據你所說的,我認爲問題在於你的上下文變量沒有「預算」值。我認爲使用第一個模板的視圖會在上下文中發送「預算」。 但第二種看法不。這就是爲什麼當你嘗試在第二個模板中獲得budget.id時會出現錯誤。

嘗試在您的視圖中修改上下文並向其添加「預算」變量。

def my_view(request, pk): 
    budget= get_object_or_404(Budget, pk=pk) 
    return render(request, 'budget.html', {'budget': budget}) 

或者,如果你正在使用基於類的視圖,你應該重寫get_context_data方法:

def get_context_data(self, **kwargs): 
    context = super().get_context_data(**kwargs) 
    context['budget'] = self.budget 
    return context 
相關問題