/ A instância do modelo / django não conseguiu obter o campo após salvar - django, modelo

a instância do modelo do django não pôde obter o campo após o salvamento - django, model

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 № 1

Você 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