Django: фильтр по пользователю и первичному ключу

В моем приложении модель Week связана через OneToOneField с моделью File, и я хотел бы получить только файл, загруженный самим пользователем, и использовать все значения в одной модели для создания графика. Итак, если User_A размещает file_id_one (понедельник=3, вторник=7 [...]) и file_id_two (понедельник=4, вторник=9 [...]), я хотел бы отфильтровать и получить только файл, размещенный залогиненным User_A, и когда пользователь достигнет данных. html с помощью пк "{% url 'data' data.id %}" появится график со значением file_id_one (понедельник=3, вторник=7 [...]), если пк равен 1. Если пк равен 2, то появится график с file_id_two (понедельник=4, вторник=9 [...]). Так что я думаю, что мне нужно фильтровать по пользователю, а также по pk? Сейчас с моим кодом я получаю вот такую ошибку 'WSGIRequest' object has no attribute 'file' . Однако colors = File.objects.filter(pk=pk) он действительно работает, но если я использую data = list(Week.objects.filter(pk=pk)[2:] переменная данных пуста.

МОДЕЛЬ

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):    
    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(pk=pk)
   labels = [f.name for f in Week._meta.get_fields()]
   data = list(Week.objects.filter(file=request.file_doc.file).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>
Вернуться на верх