ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – Django CreateView:将ForeignKey附加到CustomForm数据

2019-07-14 02:58:51  阅读:280  来源: 互联网

标签:python django foreign-keys form-data create-view


我有一个CreateView如下:

class ResumeCreateView(CreateView):
    model = Resume

    def form_valid(self, request, form):
        candidate = Candidate.objects.get(user=self.request.user)
        self.object = form.save(commit=False)
        self.object.candidate = candidate
        self.object.save()
        f = self.request.FILES.get('file')
        data = [{
            'title': self.request['title'],
            'name': f.name,
        }]  
        response = JSONResponse(data, {}, response_mimetype(self.request))
        response['Content-Disposition'] = 'inline; filename=files.json'
        return response

在这里,我试图将候选实例附加到Resume模型候选字段,该字段是Candidate模型的ForeignKey.

但我总是收到验证错误{‘候选人’:’这个字段是必需的’}

>我使用自定义表单而不是模型表单,因为它使用twitter引导标识符.

我错过了什么?

解决方法:

您必须使用候选作为排除字段定义modelForm,然后在form_valid()方法中设置它.

class ResumeForm(forms.ModelForm):
    class Meta:
        model = Resume
        exclude = ('candidate',)

class ResumeCreateView(CreateView):
    form_class = ResumeForm
    model = Resume

    def form_valid(self, form):
        form.instance.candidate = Candidate.objects.get(user=self.request.user)
        ....

更详细的参考资料:Models and request.user

标签:python,django,foreign-keys,form-data,create-view
来源: https://codeday.me/bug/20190714/1455259.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有