Tu je môj kód:
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
Keď zavolám appendUser (), vloží nový záznam do datebase a užívateľ(Inštancia TblUser) majú iba dve platné polia (užívateľské meno, heslo), druhá je prázdna.
Ako môžem získať user.uid
pretože chcem používať iné veci?
odpovede:
2 pre odpoveď č. 1Mali by ste použiť AutoField
nie IntegerField
pre pk: https://docs.djangoproject.com/en/1.4/ref/models/fields/#autofield
0 pre odpoveď č. 2
Možno si budete chcieť prečítať tento príspevok, odlišný prístup pomocou ModelForm:
Získajte primárny kľúč po uložení ModelForm v Django