在 Django 中获取模型表单的保存对象?
Get saved object of a model form in Django?
我只是想在 Django 中使用模型表单发布后访问模型详细信息。这个 guy 也问过同样的问题但是当我尝试
接受的答案,它 returns none 类型值。
这是我在 'views.py' 中的代码:
if request.method == 'POST':
if request.user.is_authenticated():
form = PostStoryForm(request.POST)
if form.is_valid():
obj = form.save(commit=False)
obj.author = request.user
new_post = obj.save()
print(new_post)
上面的代码成功将表单保存到数据库,但是 'new_post' 变量是 'None'。例如,当我尝试访问模型中的字段 'new_post.title' 时,它 returns 'AttributeError' 表示 'NoneType' 对象没有属性 'title'
我做错了什么?
模型save()
方法没有return实例
obj.author = request.user
obj.save() # this does not return anything. It just saves the instance it is called on.
您的实例已经设置了 author
。
要访问尚未设置的自动填充字段,您必须在保存后再次从数据库中获取它。当您调用 save()
的实例之前不存在时就是这种情况。
new_obj = MyModel.objects.get(id=obj.id)
我只是想在 Django 中使用模型表单发布后访问模型详细信息。这个 guy 也问过同样的问题但是当我尝试 接受的答案,它 returns none 类型值。
这是我在 'views.py' 中的代码:
if request.method == 'POST':
if request.user.is_authenticated():
form = PostStoryForm(request.POST)
if form.is_valid():
obj = form.save(commit=False)
obj.author = request.user
new_post = obj.save()
print(new_post)
上面的代码成功将表单保存到数据库,但是 'new_post' 变量是 'None'。例如,当我尝试访问模型中的字段 'new_post.title' 时,它 returns 'AttributeError' 表示 'NoneType' 对象没有属性 'title'
我做错了什么?
模型save()
方法没有return实例
obj.author = request.user
obj.save() # this does not return anything. It just saves the instance it is called on.
您的实例已经设置了 author
。
要访问尚未设置的自动填充字段,您必须在保存后再次从数据库中获取它。当您调用 save()
的实例之前不存在时就是这种情况。
new_obj = MyModel.objects.get(id=obj.id)