Доступ к связанным полям модели из действий ModelAdmin для экспорта в Excel
Модель ModelAdmin должна экспортировать в метод действий Excel.
Мне нужно получить доступ к связанным полям модели в методе действия. Это означает, что я не могу передавать какие-либо аргументы, поэтому я попробовал relatedmodel_set, но метод действия ModelAdmin показывает расположение памяти и не работает, когда я пытаюсь получить доступ к значениям через атрибуты: <django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager..RelatedManager объект по адресу 0x7f8eea904ac0>
model.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...>
admin.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. Поэтому для выбранных строк, только данных со страницы change_list администратора Django, потребуется только немного работы, используя его набор запросов в методе действий, который используется в отдельном файле actions.py, который я могу сделать!
Пожалуйста, помогите мне с этим вопросом. Я новичок в Python / Django. Я также попробовал декоратор свойств в связанной модели, затем обратился к методу в основной модели, затем вызвал его внутри действия, но та же проблема с адресом памяти, а не прямым значением, а затем как получить здесь данные о местоположении памяти .... Я не знаю .
Если я могу получить доступ к связанным полям, тогда я не смогу это сделать.
Другой вопрос: у меня была такая же ситуация с моделью / связанной моделью раньше, но они были связаны через отношения OneToOneField, и я смог использовать dundor для доступа к связанным полям модели, но в этом случае отношения ForiegnKey я не вижу связанную модель в наборе запросов.
В противном случае это то, что я могу легко сделать; здесь cohortdetails - это связанная модель, и когда я отлаживал, я увидел, что она была указана в наборе запросов, что было здорово.
actions = [export_as_txt_action_0080("Экспорт файла NAT00080 txt",fields=['rto_student_code', 'first_name', 'family_name', 'cohortdetails__highest_school__highestschool_levelcode],' cohortdetails__cohort_gender'),' cohortdetails__cohort_gender')