Aqui está o meu código:
models.py
class TblUser(models.Model):
uid = models.IntegerField(primary_key=True, db_column="ID") # Field name made lowercase.
username = models.CharField(max_length=3072, db_column="UserName", blank=True) # Field name made lowercase.
password = models.CharField(max_length=3072, db_column="PassWord", blank=True) # Field name made lowercase.
datesstart = models.DateTimeField(null=True, db_column="datesStart", blank=True) # Field name made lowercase.
datesend = models.DateTimeField(null=True, db_column="datesEnd", blank=True) # Field name made lowercase.
num = models.IntegerField(null=True, db_column="Num", blank=True) # Field name made lowercase.
power = models.IntegerField(null=True, db_column="Power", blank=True) # Field name made lowercase.
email = models.CharField(max_length=12288, blank=True)
class Meta:
db_table = u"tbl_user"
def __unicode__(self):
return "%d--%s--%d"%(self.uid,self.username,self.power)
views.py
from app.models import TblUser
def appendUser(self,name,pwd):
#I add a new user,and the primary_key:uid is autoincrement in datebase
user = TblUser.objects.create(username=name,password=pwd)
print user.uid#None
Quando eu chamo o appendUser (), ele irá inserir um novo registro na base de dados, e o do utilizador(Instância do TblUser) tem apenas dois campos válidos (usuário senha), o outro está vazio.
Como posso obter o user.uid
porque eu quero lidar com outras coisas usando ele?
Respostas:
2 para resposta № 1Você deve usar um AutoField
não é um IntegerField
para o pk: https://docs.djangoproject.com/en/1.4/ref/models/fields/#autofield
0 para resposta № 2
Você pode querer ler esta postagem, uma abordagem diferente usando ModelForm:
Obtenha a chave primária após salvar um ModelForm no Django