2011-01-03 5 views
0

신호를 통해 내 모델이 카테고리에 속하는지 확인합니다. 그렇다면 선택적 ImageField를 특정 URL로 변경하고 싶습니다.Django : ImageField 옵션의 URL 변경

어떻게 달성 할 수 있습니까? 아래의 코드는 작동하지 않습니다. 옵션 필드이므로 "속성을 설정할 수 없습니다"오류가 발생했습니다. 저장 한대로 비어 있습니다. 여기

내 샘플 모델

class Foo(models.Model): 
    category = models.IntegerField(max_length=1) 
    poster = models.ImageField(u"Poster", blank=True) 

및 신호 저장 내 게시물 :

def post_poster(instance, **kwargs): 
     if instance.category == 1 #a specific category 
      instance.poster.url = u'/media/special_image_for_1.png' 
      instance.save() 
    except MovieCat.DoesNotExist: 
     pass 
+0

이, 당신은 알고 적절한 파이썬 구문이 아닙니다. – gruszczy

답변

0

당신은 당신이 데있어 어떤 문제가 말을하지 않습니다, 그래서 거기에 (즉, 코드가 작동합니까?) 코드에서 두 가지 문제가 있습니다. 첫째, 아마 post-save 신호 (무한 루프, 누구?)에 저장하고 싶지 않을 것입니다. 둘째, 들여 쓰기 문제가 있습니다 (if 이후 들여 쓰기가 필요합니다).

아마도이 방법은 Model.clean()입니다.

은 다음과 같이 모델에 clean 방법을 정의합니다

def clean(self): 
    if instance.category == 1 #a specific category 
    instance.poster.url = u'/media/special_image_for_1.png' 
+0

내 러시를 용서하십시오. 이제 문제 부분을 편집하고 들여 쓰기를 올바르게 설정했습니다. – Hellnar

+0

@Hellnar -해야 할 일을 업데이트했습니다. –

+0

감사합니다. Dominic! – Hellnar