Я пытаюсь экспортировать данные из браузера в подробном представлении Django. DetailView относится к модели OsmoClient, а данные, которые я хотел бы экспортировать, находятся в модели FinancialData, которая связана с OsmoClient с помощью Foreignkey.
models.py
class OsmoClient(models.Model):
created = models.DateTimeField(auto_now_add=True)
client_code = models.CharField(max_length=250, blank=True)
osmo_client_ref = models.CharField(max_length=250, blank=True)
def __str__(self):
return self.client_code
def get_absolute_url(self):
#used to create a unique URL page for each object
return reverse('osmoclient-detail',args=[str(self.id)])
def get_fields(self):
#Needed so that we can iterate over the fields in the html view, rather than typing them out.
return [(field.verbose_name, field.value_from_object(self)) for field in self.__class__._meta.fields]
class FinancialData(models.Model):
osmo_client = models.ForeignKey(OsmoClient, on_delete=models.CASCADE)
bank_balance = models.IntegerField()
sales_balance = models.IntegerField()
daily_movement_in_sales = models.IntegerField()
trade_debtors_balance = models.IntegerField()
trade_creditors_balance = models.IntegerField()
date_created = models.DateTimeField(auto_now_add = True)
class Meta:
verbose_name_plural = "Financial Data"
unique_together = ['osmo_client', 'date_created'] #Needed so that each client can only have one set of financial data per day
ordering = ['osmo_client']
def __str__(self):
return str(self.osmo_client) + str(self.date_created)
def get_absolute_url(self):
#Used to generate a unique URL page for each object
return reverse('financialdata-detail', args=[str(self.id)])
def get_fields(self):
#Needed so that we can iterate over the fields in the html view, rather than typing them out.
return [(field.verbose_name, field.value_from_object(self)) for field in self.__class__._meta.fields]
просмотров. py
class OsmoClientDetailView(generic.DetailView):
model = OsmoClient
osmoclient_detail. html
<table>
<tr>
<th>Date</th>
<th>Cash</th>
<th>Sales</th>
<th>Sales Change</th>
<th>Trade Debtors</th>
<th>Trade Creditors</th>
</tr>
{% for financialdata in osmoclient.financialdata_set.all %}
<tr align ='right'>
<td>{{ financialdata.date_created|date:"d/m/y" }}</td>
<td>{{ financialdata.bank_balance }}</td>
<td>{{ financialdata.sales_balance }}</td>
<td>{{ financialdata.daily_movement_in_sales }}</td>
<td>{{ financialdata.trade_debtors_balance }}</td>
<td>{{ financialdata.trade_creditors_balance }}</td>
</tr>
{% endfor %}
</table>
Данные в таблице на странице osmoclient_detail. html - это то, что я хотел бы экспортировать. Я посмотрел на другие ресурсы для экспорта в csv, но все они предназначены для полного набора данных, а не для фильтрации, чтобы показать только осмоклиент, на котором находится текущая веб-страница.
Любой совет с благодарностью!