如何解决如何在创建Django对象时向其添加额外的参数?
我有一个具有许多参数的Django模型,其中一个称为“系统”,它是对“系统”类型的对象的引用。
class Format(models.Model):
system = models.ForeignKey(System,on_delete=models.SET_NULL,null=True)
petition_date = models.DateField(auto_now=True)
resolution_date = models.DateField(null=True,default=None)
... other fields ...
系统可能为空,但我希望此字段与创建Format对象的用户相同。 我的用户对象是这样的:
class CustomUser(AbstractUser):
current_system = models.ForeignKey(System,null=True,default=None)
department = models.ForeignKey(Department,default=None)
我有一个可以成功创建Format对象的表单。但是,我想知道一种在CreateView中执行类似操作的方法:
class FormatCreateView(LoginRequiredMixin,CreateView):
"""
-----------------------Vista de crear nuevos articulos--------------------------
"""
template_name = 'format_form.html'
model = Format
success_url = reverse_lazy("formats:formats")
form_class = FormatUpdateForm
def post(self,request,*args,**kwargs):
form = FormatUpdateForm(request.POST)
if form.is_valid():
user = User.objects.get(id=self.request.user.id)
format = self.object # I'm pretty sure this is wrong and doesn't get the Format object that was just created
format.system = user.current_system
format.save(update_fields=['system'])
return HttpResponseRedirect(reverse('formats:formats'))
但是,这不起作用。任何建议将不胜感激。
更新:
此外,我忘了提及这些,在完成并发送表格后,不再创建Format对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。