问题描述
我已经阅读了以前的 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 (将#修改为@)