0

我急切地等待有人关注我的问题得到解答....请帮助.. ModelAdmin 模型必须导出到 Excel 操作方法。

我需要在 action 方法中访问相关的模型字段。这意味着我不能传递任何参数,因此我尝试了 relatedmodel_set 但是 ModelAdmin 操作方法显示内存位置并且当我尝试通过属性访问值时失败:<django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager..RelatedManager object at 0x7f8eea904ac0>

模型.py

class EnrolStudent(models.Model):

  def get_trn_activity(self):
      return self.studenttraininactivities_set


class StudentTraininActivities(models.Model):

    trainin_activities = models.ForeignKey(EnrolStudent, 
                              on_delete=CASCADE, null=True )
    <other fields...>

管理员.py

@admin.register(EnrolStudent)
class EnrolAdmin(admin.ModelAdmin):
    form = CityInlineForm
    inlines = [CohortTraininActivitiesInline]

    ...
    actions = [export_as_txt_action_0120("File NAT00120 data Export"
            , fields=['information_no', 'get_trn_activity',
            'student_enrol__student_code'])]

我需要访问相关的模型字段以导出到 Excel。正如您所注意到的,我无法将参数传递给 get_trn_activity。因此,仅来自 Django 管理 change_list 页面的选定行数据只需要使用其在单独的 actions.py 文件中使用的操作方法中的查询集进行一些工作,我可以做到!

请帮我解决这个问题。我是 Python / Django 的新手。我还尝试了相关模型中的属性装饰器,然后访问主模型中的方法,然后在操作中调用它,但是内存地址不是直接值,然后如何在这里获取内存位置的数据......我不知道.

如果我可以访问相关字段,那么我可以做到这一点。

另一个问题: 我以前与模型/相关模型有相同的情况,但它们通过 OneToOneField 关系连接,我能够使用 dundor 访问相关模型字段,但在这种 ForiegnKey 关系的情况下,我无法在查询集中看到相关模型。

在其他情况下,这是我可以轻松做到的;这里的队列详细信息是相关模型,当我调试时,我看到它在查询集中列出,这很棒。

动作= [export_as_txt_action_0080(“文件NAT00080 txt导出”,字段= ['rto_student_code','first_name','family_name','cohortdetails__highest_school__highestschool_levelcode','cohortdetails__cohort_gender','cohortdetails__student_dob'])]

4

0 回答 0