Показать статистику
0 голосов
от (2.7тыс. баллов)

У меня есть раскрывающийся список, как показано на изображении ниже. Он должен отображать только зарегистрированные пользовательские кампании (здесь последний бесплатный элемент. Но он показывает кампанию других пользователей.

введите описание изображения здесь Любая помощь приветствуется. Вот :

 

def insertion_orders(request, pk):
  if request.user.is_authenticated:
      user = User.objects.get(id=pk)
      insertion_orders = user.insertionorder_set.all().order_by('-created_date')
      filter = InsertionOrdersFilter(request.GET, queryset=insertion_orders)
      insertion_orders_filter = filter.qs
      print(insertion_orders_filter)
      context = {
          'user': user,
          'insertion_orders': insertion_orders_filter,
          'filter': filter
      }

      return render(request, 'insertion_orders.html', context)
  else:
      return HttpResponse('You re not logged in ! Please log in first')
  • My model:

    class InsertionOrder(models.Model):
    
      user = models.ForeignKey(User, on_delete=models.CASCADE)
      campaign_naming_tool = models.ForeignKey(CampaignNamingTool,
                                               on_delete=models.CASCADE)
      budget = models.DecimalField(max_digits=20, decimal_places=2)
      goal_value = models.DecimalField(max_digits=20, decimal_places=2)
      start_date = models.DateField()
      end_date = models.DateField()
      created_date = models.DateTimeField(auto_now_add=True, blank=True, null=True)
    
      def __str__(self):
          return "%s" % self.campaign_naming_tool
          # return "{} - [{}]".format(self.insertion_order, self.user)
    
      class Meta:
          db_table = 'InsertionOrder'
110 просмотров 1 ответов

1 Ответ

0 голосов
от (26.4тыс. баллов)

Измените строку insertion_orders на:

insertion_orders = user.insertionorder_set.filter(user=request.user)

Я думаю, это сработает для вас.

...