【问题标题】:django model instance could not get the field after savedjango模型实例保存后无法获取字段
【发布时间】:2012-06-21 08:10:01
【问题描述】:

这是我的代码:

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

当我调用 appendUser() 时,它会在数据库中插入一条新记录,而 user(TblUser 的实例)只有两个有效字段(用户名,密码),另一个为空。

我想通过user.uid 来处理其他事情,如何获得它?

【问题讨论】:

    标签: django model


    【解决方案1】:

    您应该为 pk 使用 AutoField 而不是 IntegerFieldhttps://docs.djangoproject.com/en/1.4/ref/models/fields/#autofield

    【讨论】:

      【解决方案2】:

      您可能想阅读这篇文章,使用 ModelForm 的不同方法:

      Get Primary Key after Saving a ModelForm in Django

      【讨论】:

        猜你喜欢
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        • 2017-05-02
        • 1970-01-01
        • 1970-01-01
        • 2018-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多