0

我已经阅读了以前的 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, blank=True, verbose_name="process activites")
    owner = models.ForeignKey(User, related_name="owner+", on_delete=models.PROTECT, blank=True, null=True, 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"

视图.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')

但是,hoofdproces 列中没有显示任何内容:(

这怎么可能?我究竟做错了什么?

请帮忙!

4

0 回答 0