如何解决如何在 Django 中使用访问器?
我已经阅读了以前的 Q 和文档,但仍然无法使其工作..
我有以下型号:
class Process(models.Model):
class Meta:
verbose_name_plural = "Processes"
name = models.CharField(max_length=120)
description = models.CharField(max_length=4)
parent_process = models.ForeignKey('self',related_name="parent_process+",on_delete=models.PROTECT,blank=True,null=True,verbose_name="parent process")
process_activities = models.CharField(max_length = 2048,verbose_name="process activites")
owner = models.ForeignKey(User,related_name="owner+",verbose_name="owner")
def __str__(self):
return "{}".format(self.name)
class ControlTest(models.Model):
history = AuditlogHistoryField()
name = models.CharField(max_length=120)
description = models.CharField(max_length=120)
现在我想使用访问器来访问进程的名称并显示在一个表中(tables.py):
class controltestTable(tables.Table):
class Meta:
hoofdproces = tables.Column(accessor='process.name')
model = ControlTest
fields = ['id',"name","hoofdproces","sub_process",'description','control','delegate','owner','reviewer1','reviewer2','reviewer1_r','reviewer2_r','delegate_r','owner_r','reviewer_status','status','history','comments','review_comments','due_date','review1_due_date','review2_due_date','documentation']
template_name = "django_tables2/bootstrap-responsive.html"
Views.py:
class ControlTestView(SingleTableView,FormView,SingleTableMixin,FilterView):
def get_context_data(self,**kwargs):
context = super().get_context_data(**kwargs)
queryset = kwargs.pop('object_list',None)
if queryset is None:
self.object_list = self.model.objects.all()
context['controltests'] = ControlTest.objects.all()
return context
def post(self,request,*args,**kwargs):
form = self.get_form()
print(form)
if form.is_valid():
instance = form.save(commit=True)
instance.save()
print('valid')
return self.form_valid(form)
else:
print(form.errors)
return self.form_invalid(form)
template_name = "control/ControlTest.html"
model = ControlTest
form_class = ControlTestForm
table_class = controltestTable
success_url = reverse_lazy('controltest')
这怎么可能?我做错了什么?
请帮忙!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。