python - 有没有办法结合CreateView和UpdateView?

标签 python django django-forms

如果模型中不存在项目,我想显示 CreateView 中存在的表单。否则我需要显示表单存在于 UpdateView 中。这样它就会加载已经保存的值。稍后我应该通过调用 update_or_create 将数据保存到数据库中方法。

这可能吗?

最佳答案

不要弄乱双重用途的 View ,这对于找出运行正确方法(并且不推荐)的方法并不简单,而是添加将重定向到 CreateView 或 EditView 的第三个 View 。

它应该看起来像这样:

from django.core.urlresolvers import reverse

class AddItemView(generic.CreateView):
    ...

class EditItemView(generic.EditView):
    ...

class UpdateItemRedirectView(generic.RedirectView):

   def get_redirect_url(self):

         if Item.objects.get( ...criteria... ).exists():
              return reverse("url_name_of_edit_view")
         else:
              return reverse("url_name_of_add_view")

关于python - 有没有办法结合CreateView和UpdateView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35577255/

相关文章:

python - 从特定目录中的 python 脚本运行 bash 命令

python - 如何填写 list

python - 我可以在同一台计算机上使用同名的多个虚拟环境吗

python - 如何从 Django 获取 api 格式响应

隐藏但需要 OneToOneField 的 Django 创建 ModelForm

python - 处理 Pandas 中的稀疏类别 - 用 "Other"替换所有不在顶级类别中的内容

php - 从 Zend Framework 开发人员的角度看 Django

html - 如何让我的 Django 表单保存图像?

Django 的 forms.Form 与 forms.ModelForm

python - 使用 Selenium 对隐藏元素进行数据输入(Python 2.7)- 元素不可见