Как получить конкретные данные из модели в профиле, когда человек вошел в систему, Django?

Я хочу публиковать определенные данные в профиле пользователя, который вошел в систему.
У меня есть такая модель:

class Customer(models.Model):
    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    name = models.CharField(max_length=60)
    email = models.EmailField(max_length=100)

class Wallet(models.Model):
    name = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    usd = models.FloatField(null=True)

Если, например, 'user2' вошел в систему, и в базе данных у него 10usd, я хочу, чтобы в его профиле отображалось 10usd.

Но я не знаю, как запросить конкретные данные пользователя, который вошел в систему

Views.py

@login_required(login_url='main')
def profile_user(request):
    usd = wallet.objects.get (get his usd from db)
    return render(request, 'profile.html', {'usd':usd})

Большое спасибо.

вы можете получить id вошедшего пользователя следующим образом

user_id = request.user.id

тогда вы можете использовать его для получения информации о кошельке этого пользователя

@login_required(login_url='main')
def profile_user(request):
    wallet_data= Wallet.objects.filter(name_id=user_id).values("usd").first()
    return render(request, 'profile.html', {'usd':wallet_data['usd']})

Еще одна рекомендация - держите имя поля Proper связанным с именем таблицы FK. например, вы задали name = models.OneToOne для User. вы должны задать его как

class Wallet(models.Model):
    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    usd = models.FloatField(null=True)

Вы можете передать класс наследия с помощью AbstractUser

from django.contrib.auth.models import AbstractUser из django.db import models

class CustomUser(AbstractUser): pass # добавляем дополнительные поля здесь

def __str__(self):
    return self.username

смотрите ссылку

Вернуться на верх