python - 为什么无法获取Django模型主键的值?
PHPz
PHPz 2017-04-18 10:08:40
[Python讨论组]
PHPz
PHPz

学习是最好的投资!

全部回复(3)
PHPz

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

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

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

伊谢尔伦

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

PHPz

有一个信息不详细没给出,就是 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,表示是否将数据保存到数据库,默认True.

源码见链接

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号