为了账号安全,请及时绑定邮箱和手机立即绑定

如何从视图中更改模型中布尔字段的值?

如何从视图中更改模型中布尔字段的值?

慕仙森 2023-03-16 11:15:57
我一直在使用的应用程序基于类的视图有两个模型,问题和答案。Question 模型用于FileField存储该问题的实际解决方案,Answer 模型用于FileField存储result用户给出的解决方案(由用户解决)。在 Answer 模型中命名的布尔字段iscorrect,默认情况下设置为 False。我想要检查两个文件是否相同(问题模型中的解决方案和答案模型中的结果)并且,切换 BooleanField iscorrect(如上所述,此布尔字段存在于 Answer 模型中)。我的问题归结为什么?假设我已经弄清楚如何检查两个文件是否相同(使用comparator中的方法views.py然后为特定 id 请求问题模型的文件,然后检查它们是否相同。公平地说,我还没有实现,所以帮助也将不胜感激),我想知道如何根据views.py我的比较器方法返回的内容( True 或 False )切换 BooleanField 。注意:正如我之前所说,我正在使用基于类的视图,所以请记住这一点,谢谢。
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

class CoderListView(ListView):

    model = Question

    template_name = "coder/coder_list.html"

    context_object_name = 'question'



class CoderDetailView(DetailView):

    model = Question

    template_name = "coder/coder_detail.html"

    context_object_name = 'question'



class CoderCreateView(CreateView):

    model = Answer

    fields = ['result']

    context_object_name = 'answer'

    template_name = "coder/coder_form.html"


    def get_success_url(self):

        question = self.object.question

        return reverse('coder:detail', kwargs={'pk': question.id})


    def form_valid(self, form):

        form.instance.question = Question.objects.get(id=self.kwargs['qid'])

        return super().form_valid(form)

我想要更改的视图(基于比较器方法的返回值切换布尔字段是 CodeCreateView,因为用户将提交文件,然后我的方法将检查它是否与解决方案相同)。


查看完整回答
反对 回复 2023-03-16
  • 1 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信