搜索

首页  >  问答  >  正文

python - 为什么无法获取Django模型主键的值?

PHPzPHPz2900 天前471

全部回复(3)我来回复

  • PHPz

    PHPz2017-04-18 10:10:40

    Django 无需「显式地定义主键」

    它会自动为表添加一个 id 字段( 主键, 自增 )

    可以考虑把你手动定义的主键去掉

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:10:40

    需要看清楚,你的post对象是PostForm()而非Post(),你的PostForm表单处理对象有id初始值,但是你传来的request.POST值有没有id值呢,没有就自然是None了,你这个post如果是Post()对象,那么肯定是有id值的

    回复
    0
  • PHPz

    PHPz2017-04-18 10:10:40

    有一个信息不详细没给出,就是 PostForm 你是如何定义的。PostForm 你是如何定义的。

    如果你这么定义PostForm,通过调用PostForm(request.POST).save()是可以得到你想要的结果的。

    class PostForm(forms.ModelForm):
    
        class Meta:
            model = Post
            

    不过你的PostForm肯定不是这么定义的,因为post = form.save(request.user)是错误的使用方法,ModelFormsave方法只有一个参数,就是commit = False 或者 commit=True

    如果你这么定义PostForm,通过调用PostForm(request.POST).save()是可以得到你想要的结果的。

    rrreee

    不过你的PostForm肯定不是这么定义的,因为post = form.save(request.user)是错误的使用方法,ModelFormsave方法只有一个参数,就是commit = False 或者 commit=True,表示是否将数据保存到数据库,默认True. 🎜 🎜源码见链接🎜

    回复
    0
  • 取消回复