Django отображает в выпадающем списке только объект внешнего ключа соответствующего пользователя
У меня есть выпадающий список, как на картинке ниже. Он должен показывать только кампании зарегистрированных пользователей (здесь последний бесплатный элемент. Но он показывает кампании других пользователей. Любая помощь будет принята с благодарностью. Вот :
Вот мое мнение:
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')Мое
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'
Измените строку insertion_orders на:
insertion_orders = user.insertionorder_set.filter(user=request.user)
Думаю, это вам подойдет.