2016-11-17 505 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 
相关问题