所以我想我现在所做的是相当普遍的。我试图用Django显示一个结果集。我在网上找了一段时间,下面是我得出的结论:
models.py{
from django.db import models
from django.conf import settings
class SalesRep(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
class Sales(models.Model):
seller = models.ForeignKey(SalesRep)
sold_on = models.DateField("Sold On")
}
sales_view.py{
from salesteam.models import SalesRep, Sales
from django.views.generic import ListView
class SellerHome(List View):
model = SalesRep
template_name = 'production/sales.html'
@property
def rep_sales(self):
return Sales.objects.filter(SalesRep=self)
}
sales.html{
<div id="total-sales">
{% for sale in SellerHome.rep_sales%}
<li>{{ sale.id }}</li>
{% empty %}
<li>You don't currently have any sales</li>
{% endfor %}
</div>
}
为了完整性,我甚至尝试将属性写成Sales.objects.all()
,但仍然没有成功。感谢您的关注,因为我对HTML、Django和Python还比较陌生。任何帮助我做错事的人都将不胜感激。如果您有任何问题,请告诉我:)
我不确定你遵循了什么教程,但是你的代码中有很多错误。。。我假设您想显示登录用户的所有
Sales
在这个场景中,我将稍微更改模型,将
related_name
添加到Sales
外键到SalesRep
:文档:https://docs.djangoproject.com/en/1.7/ref/models/fields/#django.db.models.ForeignKey.related_name
我将
views
改为使用DetailView
:DetailView上的文档-https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-display/#detailview
首先,我建议避免使用基于类的视图,至少在您学习Django时是这样,因为它们对于您所做的工作来说并不是真正必要的,也不是不必要的复杂
无论如何,要使用基于类的视图回答您的问题,您的问题就在模板和视图中。您需要将rep\u sales逻辑放在
get_queryset
中,将模型设置为sales,而不是SalesRep,然后在模板中引用object_list
More info但是,我建议编写一个普通的、基于函数的Django视图。像这样的事情可能会让你开始:
相关问题 更多 >
编程相关推荐