Django: фильтрация результатов с использованием первичного ключа
В моем файле data.html мне нужна информация как из модели файла, так и из модели недели. Используя colors = File.objects.filter(user=request.user.userdata).filter(pk=pk)
я могу получить всю необходимую мне информацию из файла с нужным PK при открытии html без проблем, но data = list(Week.objects.filter(user=request.user.userdata).filter(pk=pk).values_list())[2:]
возвращает мне только пустую переменную. Как я могу получить доступ ко всем значениям в моем поле, основанном не на pk для переменной данных? Спасибо
МОДЕЛЬ
class File(models.Model):
user = models.ForeignKey(UserData, on_delete=models.CASCADE)
docfile = models.FileField(upload_to=path)
color = models.CharField(max_length=250)
class Week(models.Model):
user = models.ForeignKey(UserData, on_delete=models.CASCADE)
file_doc = models.OneToOneField(File, on_delete=models.CASCADE)
monday = models.PositiveIntegerField(null=True)
tuesday = models.PositiveIntegerField(null=True)
wednesday = models.PositiveIntegerField(null=True)
thursday = models.PositiveIntegerField(null=True)
friday = models.PositiveIntegerField(null=True)
saturday = models.PositiveIntegerField(null=True)
sunday = models.PositiveIntegerField(null=True)
VIEW
def week_data(request, pk):
colors = File.objects.filter(user=request.user.userdata).filter(pk=pk)
labels = [f.name for f in Week._meta.get_fields()]
data = list(Week.objects.filter(user=request.user.userdata).filter(pk=pk).values_list())[2:]
context = {
'labels': labels,
'data': data,
'colors': colors
}
return render(request, 'data.html', context)
HTML
<!DOCTYPE html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.js"></script>
<canvas id="doughnut-chart" width="800" height="450"></canvas>
new Chart(document.getElementById("doughnut-chart"), {
type: 'doughnut',
data: {
labels: [{% for label in labels %} '{{ label|capfirst }}', {% endfor %}],
datasets: [
{
label: "Population (millions)",
backgroundColor: [{% for color in colors %} '{{ color }}', {% endfor %}],
data: [{% for value in data %} {{ value }} {% endfor %}]
}
]
},
options: {
title: {
display: true,
text: 'Predicted world population (millions) in 2050'
}
}
});
</script>