django - 提交后返回表单的pk
问题描述
提交后我需要返回表单的 PK,以便我可以在第二个表单中使用它。我在网上找到的关于返回 PK 的所有内容都是针对 http 重定向,而不是将其存储在变量中并在视图中使用它
看法
def createPostView(request):
currentUser = request.user
postForm = PostForm()
if request.method == 'POST':
postForm = PostForm(request.POST, request.FILES)
if postForm.is_valid():
PostFormID = postForm.save(commit=False)
PostFormID.author = request.user
PostFormID.save()
return #need to get pk from this form
for f in request.FILES.getlist('images'):
test = PostImagesForm(request.POST, request.FILES)
if test.is_valid():
instance = test.save(commit=False)
instance.post = #need to use pk here
instance.images = f
instance.save()
return HttpResponseRedirect("/")
return render(request, 'blog/post_form.html', {'postForm': postForm, 'PostImagesForm':PostImagesForm})
解决方案
表单的save()
方法返回刚刚创建/更新的实例。因此,您将通过以下操作获得距离的 PK 值,
instance = PostFormID.save()
my_pk_value = instance.pk
推荐阅读
- html - 在查找器都匹配的红宝石中识别要选择的html元素
- python - Mac上的Pyautogui错误?使用点击功能时无故三次点击
- android - 运行时应用程序崩溃并且不提供代码路径
- java - 房间错误:不确定如何处理插入方法的返回类型
- airflow - 将 SimpleHttpOperator 的 xcom 传递给 DatabricksSubmitRunOperator
- python - 在 Watson Machine Learning 部署的函数中安装 spacy 失败且没有错误消息
- powerbi - 使用测量值进行视觉过滤
- c++ - 使用动态布尔数组的问题
- java - 如何用jdbc实现一对多
- python - 在单个序列化程序 django 中读取和创建嵌套关系