Есть три модели:
models.py####################################
class CommonInfo(models.Model):
name = models.CharField(max_length=100,
unique=True,
null=True,
verbose_name='Имя')
def __str__(self):
return self.name
class Meta:
abstract = True
####################################
class FacultyModel(CommonInfo):
pass
class Meta(CommonInfo.Meta):
verbose_name_plural = 'Факультеты'
verbose_name = 'Факультет'
ordering = ('created_at',)
####################################
class DepartmentModel(CommonInfo):
faculty = models.ForeignKey(FacultyModel,
verbose_name='Факультет')
class Meta(CommonInfo.Meta):
verbose_name_plural = 'Кафедры'
verbose_name = 'Кафедра'
ordering = ('faculty', 'created_at')
####################################
class GroupModel(CommonInfo):
department = models.ForeignKey(DepartmentModel,
verbose_name='Кафедра')
class Meta(CommonInfo.Meta):
verbose_name_plural = 'Группы'
verbose_name = 'Группа'
ordering = ('department', 'created_at',)
####################################
И есть такой код в админке:
admin.py@admin.register(GroupModel)
class GroupAdmin(CommonAdmin):
list_display = ('name', 'department', 'get_faculty_name')
def get_faculty_name(self, obj):
return obj.department.faculty.name
get_faculty_name.short_description = 'Факультет'
get_faculty_name.admin_order_field = 'faculty__name'
Результат работы admin.py
Как видите добавилось поле с факультетом
Всё хорошо. Всё подходит. Но тут PyCharm подсказывает такую вещь:
Method 'get_faculty_name' may be 'static' less... (Ctrl+F1 Alt+T)
This inspection detects any methods which may safely be made static.
Я делаю метод статическим:
admin.py@admin.register(GroupModel)
class GroupAdmin(CommonAdmin):
list_display = ('name', 'department', 'get_faculty_name')
@staticmethod
def get_faculty_name(obj):
return obj.department.faculty.name
get_faculty_name.short_description = 'Факультет'
get_faculty_name.admin_order_field = 'faculty__name'
И получается такое:
Собсно сам вопрос вот в чём. Нужно ли использовать этот статик метод в данной ситуации? Если да, та как вернуть полю название? Я так понял, что если юзается статик метод, то он имя подхватывает из названия метода.