Django:将DB数据显示为仅登录具有多个过滤器的用户

时间:2016-04-21 18:45:19

标签: django django-views

我有一个数据库表,如下所示。 enter image description here

显示数据库数据的网址

url(r'^editinvoice/(?P<pk>\d+)/$',views.edit_invoice,name='editinvoice'),
重定向到此页面的

template.html代码

<a href="{% url "editinvoice" pk=invoices.id %}">{{ invoices.invoice_number }}</a></td>

invoices.id是上面数据库表的外键。

链接传递正确的pk并正确显示详细信息。但是,如果我只是更改url中的id,即使我不是与之相关的用户,我也可以看到信息。 只有当用户拥有该信息时,应该如何使用该信息才能登录用户。

1 个答案:

答案 0 :(得分:1)

对于您的观看方法public class WeightCounter implements Runnable{ private ArrayList<Good> goodList = Main.goodList; @Override public void run() { System.out.println("Thread 2 started"); for(int i = 0; i < 10; i++) { try { Thread.sleep(100); } catch (InterruptedException ie) { throw AssertionError(ie); } int weightSum = 0; synchronized(goodList){ for (Good g : goodList) weightSum += g.getWeight(); } System.out.println(weightSum); } } } ,请使用edit_invoice装饰器。 在该方法中,您将引发403错误:

@login_required

请参阅有关@login_required的django文档。

另见django doc PermissionDenied

修改

是的,#34;不存在&#34;更有意义。最常见的是提出404异常,就好像用户访问的网址不存在一样:

从django.http导入Http404 提高Http404

Django doc about Http404