更新:该解决方案可以作为单独的答案找到
我正在制作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)