Сопоставление идентификатора текущего пользователя с полем в django Моделях - PullRequest
1 голос
/ 13 января 2020

Я хочу получить данные из моделей, отфильтровав их по текущему зарегистрированному пользователю, чей идентификатор уже присутствует в модели сотрудника. Как мне этого добиться?

Models.py

from django.db import models
from django.contrib.auth.models import User
import django
import datetime
# Create your models here.



class vendor(models.Model):
    id = models.CharField(max_length=20, primary_key=True)
    name = models.CharField(max_length=30)

class employee(models.Model):
    name = models.OneToOneField(User, on_delete=models.CASCADE)
    id = models.CharField(max_length=20, primary_key=True)
    balance = models.IntegerField(default=0)

class transaction(models.Model):
    vendor_id = models.ForeignKey(vendor, on_delete=models.CASCADE)
    emp_id = models.ForeignKey(employee, on_delete=models.CASCADE)
    debit = models.IntegerField()
    credit = models.IntegerField()
    timestamp = models.DateField(("Date"), default=datetime.date.today)

views.py:

def updatingBalance(request):
    if request.method=="POST":
        ven_id = request.POST["groupOfDefaultRadios"]
        amount = request.POST["amt"]
        print("..................debg 1")

        print("User Id is {} and employee id = {}".format(User.id, id))
        x = employee.objects.get(id = User.id)
        x.balance = x.balance - amount
        p = transaction(vendor_id =int(ven_id), emp_id = request.User.id, debit=amount, credit=0)
        p.save()
        y = employee.objects.filter(id = User.id)
        return render(request, 'profiles/userLogin.html/', {'model':y})
return render(request, 'profiles/userLogin.html/')

1 Ответ

0 голосов
/ 13 января 2020

Вы должны запросить идентификатор vendor_id, прежде чем присваивать ему модель транзакции /

v = vendor.objects.get(id=ven_id)
transaction.objects.create(vendor_id =v, emp_id =request.user, debit=amount, credit=0)
...