Django 框架:从 django.db.models.fields.IntegerField 获取价值

django framework: get value from django.db.models.fields.IntegerField

如何从 class django.db.models.fields.IntegerField 中获取价值? 我想从管理领域得到 1。 这是 python 代码:模型 class 和函数视图

from django.db import models
from django.db import connection
import pymysql
    
# Create your models here.

class Users(models.Model):
    def __init__(self,*args, **kwargs):
        super().__init__(*args, **kwargs)
        self.firstname=models.CharField(max_length=100)
        self.lastname=models.CharField(max_length=100) 
        self.username=models.CharField(max_length=50)
        self.password=models.CharField(max_length=255)
        self.admin=models.IntegerField()
        self.createdAt=models.DateTimeField(db_column="created_at")

    def getAdmin(self):
        return self.admin

    class Meta:
        db_table = 'users'

我运行user = Users.objects.get(id=userId)

时的一个查看函数
def home(request):    
    #controllo se sei loggato
    if request.session.has_key('loggedin'):
        if request.session['loggedin'] != True:
            return redirect("login")
    else:
        return redirect("login")
    
    #l'utente è loggato recupero le informazioni
    userId = int(request.session['id'])
    user = Users.objects.get(id=userId) 
    print(type(user))
    print(type(user.getAdmin()))
    tmplVar = {}
    tmplVar["admin"] = user.admin
    return render(request, 'pygiustizia/home.html',{'tmplVar': tmplVar})

你打印的是类型而不是值

print(type(user))
print(type(user.getAdmin()))

如果您尝试类似的操作:

print(user)
print(user.admin)

你应该在笔记上得到一些东西:

>> <object>
>> 1

除非您重新定义 __repr____str__

我想,您需要 admin 的值。根据我的理解,您可以对 Users 模型中的对象使用 filter 方法。由于您已经在 __init__ 方法中初始化了模型字段,我确信这不是一个好的做法,但根据您的要求,您可以这样做:

from django.db import models
    
# Create your models here.

class Users(models.Model):
    def __init__(self,*args, **kwargs):
        super().__init__(*args, **kwargs)
        self.firstname=models.CharField(max_length=100)
        self.lastname=models.CharField(max_length=100) 
        self.username=models.CharField(max_length=50)
        self.password=models.CharField(max_length=255)
        self.admin=models.IntegerField()
        self.createdAt=models.DateTimeField(db_column="created_at")

    def getAdmin(self):
        return self.objects.get(admin=self.admin)

    class Meta:
        db_table = 'users'

然后你可以替换你的行user = Users.objects.get(id=userId)user = User(userId)

希望这就是您要找的!