У меня есть приложение django с моделью для загрузки файлов.Мне нужно показывать разные поля при создании нового объекта и показе существующего.У меня есть следующий класс администратора:
class ResourceAdminForCustomer(ModelAdmin):
list_display = ["name", "type", "size"]
list_filter = ['type']
def get_form(self, request, obj=None, **kwargs):
if obj:
self.fields = ("name", "type", "size", "tags")
else:
self.fields = ("name", "type", "media", "description", "tags")
return super(ResourceAdminForCustomer, self).get_form(request, obj, \
**kwargs)
def size(self, obj):
file = '%s/customers/%s/resources/%s' \
% (settings.MEDIA_ROOT, obj.customer, obj.media.name.split("/")[-1])
if os.path.exists(file):
return "%0.1f KB" % (os.path.getsize(file)/(1024.0))
return "0 MB"
Когда я пытаюсь открыть форму, я получаю:
Caught AttributeError при рендеринге: объект 'NoneType' не имеет атрибута 'label'
Так как я могу вставить функцию size в качестве поля read_only в мои self.fields?
Спасибо.