小编tBu*_*uLi的帖子

Django表单:在提交数据库之前要求确认

更新:该解决方案可以作为单独的答案找到

我正在制作Django表单,以允许用户向我的数据库添加电视节目。为此,我有一个Tvshow模型,TvshowModelForm并且使用通用的基于类的视图CreateTvshowView/ UpdateTvshowView生成表单。

现在出现了我的问题:假设用户想向数据库添加节目,例如《权力的游戏》。如果已经存在以该标题显示的节目,我想提示用户确认这确实是与数据库中的节目不同的节目,如果不存在类似的节目,我想将其提交给数据库。我如何最好地处理此确认?

我的一些实验显示在下面的代码中,但也许我正在以错误的方式进行操作。我的解决方案的基础是包括一个隐藏字段force,如果用户确定是否要提交此数据,则如果系统提示他,则应将其设置为1,以便我可以读取该值是否为1来确定用户是否单击再次提交,从而告诉我他要存储它。

我很想听听你们对如何解决这个问题的想法。

views.py

class TvshowModelForm(forms.ModelForm):
    force = forms.CharField(required=False, initial=0)
    def __init__(self, *args, **kwargs):
        super(TvshowModelForm, self).__init__(*args, **kwargs)

    class Meta:
        model = Tvshow
        exclude = ('user')

class UpdateTvshowView(UpdateView):
    form_class = TvshowModelForm
    model = Tvshow
    template_name = "tvshow_form.html"

    #Only the user who added it should be allowed to edit
    def form_valid(self, form):
        self.object = form.save(commit=False)
        #Check for duplicates and similar results, raise an error/warning if one is found     
        dup_list = …
Run Code Online (Sandbox Code Playgroud)

django django-forms

5
推荐指数
2
解决办法
4919
查看次数

标签 统计

django ×1

django-forms ×1