У меня есть Django FilterSet, который показывает на каждого инвестора инвестиции.
Проблема в том, что в моем шаблоне (html browser) инвесторы, у которых есть 0 вложений, не отображаются.
Я почти уверен, что проблема заключается в том, как я фильтрую инвестиции. Set_all
Кто может мне помочь:) ??
большое спасибо всем!
models.py:
class Fund(models.Model):
feeder = models.CharField(max_length=100)
def __str__ (self):
return self.feeder
class Investor(models.Model):
first_name = models.CharField(max_length = 100)
last_name = models.CharField(max_length = 100)
def __str__ (self):
return '%s %s' % (self.first_name, self.last_name)
class Investment(models.Model):
feeder = models.ForeignKey(Fund, on_delete=models.CASCADE)
investor = models.ForeignKey(Investor, on_delete=models.CASCADE)
commitment = models.DecimalField(max_digits=20, decimal_places=2, default="1")
def __str__ (self):
return '%s %s' % (self.feeder, self.investor)
filters.py:
class InvestorFilter(django_filters.FilterSet):
first_name = django_filters.CharFilter(field_name='first_name', lookup_expr='icontains')
last_name = django_filters.CharFilter(field_name='last_name',lookup_expr='icontains')
views.py:
def investors_overview(request):
investorfilter = InvestorFilter(request.GET, queryset=Investor.objects.all())
return render(request, 'funds/investors.html', {'investorfilter' : investorfilter })
investors.html:
<tbody>
{% for investor in investorfilter.qs %}
{% for investment in investor.investment_set.all %}
<tr>
<td> {{investor.first_name}} </td>
<td> {{investor.last_name}} </td>
<td> {{investment.feeder}} </td>
<td> {{investment.commitment}} </td>
</tr>
{% empty %}
<tr>
<td colspan="5"> No such investor exists</td>
</tr>
{% endfor %}
{% endfor %}
<p></p>
</tbody>