-2
인스턴스의 이미지 필드를 저장하는 작은 함수를 작성하려고합니다.django - 인스턴스 속성을 변수로 저장 - 작동하지 않습니다.
def save_image_to_model(instance, **kwargs):
fieldname = kwargs.pop('fieldname')
imgpath = kwargs.pop('imgpath')
imagefile_name = urlparse(imgpath).path.split('/')[-1]
instance.fieldname.save(imagefile_name,
ContentFile(urllib2.urlopen(imgpath).read()))
instance.save()
하지만 난 내가 그것을 좋아 호출하고
'MyModel' object has no attribute 'fieldname'
을 얻고있다 : 나는 getattr(instance, fieldname)
사용에 대한 생각
save_image_to_model(myinstance, fieldname='bg_image', imgpath='http://.../img.png')
그러나 이것은 올바른 방법입니다 있는지 확실하지 않다.
어떻게하면됩니까?
UPDATE : 난 그냥 시도
:
instance.getattr(instance, fieldname).save(imagefile_name,
ContentFile(urllib2.urlopen(imgpath).read()))
내가 'MyModel' object has attribute 'getattr'
이
추가하십시오 무엇입니까 모델 정의 및 전체 stacktrace :) – Wolph
@ doniyor 당신은'getattr'이 "올바른 방법"이되지 않을 것이라고 어떻게 생각합니까? –
@doniyor 아니요, getattr은 모델을 매개 변수로 사용하지 않습니다. getattr은 객체를 취해 관련 속성을 반환합니다. 그 대상이 무엇인지는 상관하지 않습니다. 바로이 경우에 맞는 솔루션입니다. –