如何從類 django.db.models.fields.IntegerField 中獲取價值?我想從管理欄位中獲得 1。這是python代碼:模型類和函式視圖
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})
uj5u.com熱心網友回復:
您正在列印型別而不是值
print(type(user))
print(type(user.getAdmin()))
如果您嘗試以下操作:
print(user)
print(user.admin)
你應該得到一些注意事項:
>> <object>
>> 1
除非你重新定義__repr__或__str__
uj5u.com熱心網友回復:
我想,你想要管理員的價值。根據我的理解,您可以做的是您可以在Users模型內的物件上使用過濾器方法。當您在__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)
我希望這就是你要找的!
uj5u.com熱心網友回復:
我糊涂了。我已經發表評論super并且__init__它有效。為什么第一次沒有?
from django.db import models
from django.db import connection
import pymysql
# Create your models here.
class Users(models.Model):
firstname=models.CharField(max_length=100)
lastname=models.CharField(max_length=100)
username=models.CharField(max_length=50)
password=models.CharField(max_length=255)
admin=models.IntegerField()
createdAt=models.DateTimeField(db_column="created_at")
def getAdmin(self):
return self.admin
我想初始化init中的所有列欄位。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/454486.html
標籤:Python django django模型 形式 pymysql
