Как получить идентификатор пользователя в модели django?

Мне нужно получить id от зарегистрированного пользователя для фильтрации запроса в модели. как получить id пользователей в модели django? Спасибо

в models.py:

class Portfo(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE, null=True)
    sell = models.ForeignKey(Sell, on_delete=models.CASCADE, null=True)
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE, null=True)
    profit = models.PositiveIntegerField(null=True)
    final_amount = models.IntegerField(null=True)

    def __str__(self):
        return self.product.name

    def final_amount(self):
        final_amount = 0
        buy = Buy.objects.filter(product_id=self.product.id, owner__exact=...)
        sell = Sell.objects.filter(product_id=self.product.id)

Мне нужно получить id от зарегистрированного пользователя для фильтрации запроса в модели.

Модели разработаны таким образом, чтобы не знать о запросах. Если вы хотите получить идентификатор пользователя, вам нужно передать его через параметр, так:

class Portfo(models.Model):
    # …

    def final_amount(self, user_id):
        final_amount = 0
        buy = Buy.objects.filter(product_id=self.product_id, owner_id=user_id)
        sell = Sell.objects.filter(product_id=self.product_id, owner_id=user_id)
        # …

В представлении вы можете затем использовать метод .final_amount(…), например, так:

from django.contrib.auth.decorators import login_required
from django.shortcuts import get_object_or_404

@login_required
def some_view(request, pk):
    my_porfolio = get_object_or_404(Portfolio, pk=pk)
    final_amount = my_portfolio.final_amount(request.user.id)
    # …
Вернуться на верх