2
django-stdimage2을 사용하여 프로젝트의 이미지 이름을 바꾸거나 크기를 조정합니다. 장고 관리자 인터페이스를 통해 이미지를 삭제할 수있는 기능이 있습니다 : 확인란을 선택하고 저장을 클릭하기 만하면됩니다.Django : 유니 코드로 강제 변환 안 함 유형을 찾았습니다.
내가 성공적으로 장고 관리자를 사용하여 이미지를 추가 할 수 있지만, 나는이 오류가 반환 된 이미지를 삭제하려고하면
오류 메시지
형식 오류에서/관리자/응용 프로그램/gear_images/1/
는 유니 코드로 강요 : 필요 문자열 또는 버퍼, NoneType 발견
모델
class gear_images(models.Model):
def __unicode__(self):
return self.image.name
gear_id = models.ForeignKey(gear)
image = StdImageField(upload_to='images/gear', blank=True, size=(640, 480, True), thumbnail_size=(100, 100, True))
description = models.CharField(max_length=100)
가능한 원인
나는 이미지가 이미 데이터베이스에서 삭제 되었기 때문에 오류가 반환됩니다 가정, 그래서 반환 아무것도 없다.
수정?
이 상황을 정확히 코딩하는 방법은 무엇입니까?
편집 : 해결책을 찾았습니다. 고마워, 바네사! 이미지가 없기 때문에
def __unicode__(self):
if self.image is None:
return "None"
elif self.image.name is None:
return "None"
else:
return self.image.name
이 작동하지 않을 유니 코드에 "없음"(A NULL 항목) 변환하지 위해 노력하고,
감사합니다. 바네사! 위의 편집을 참조하십시오. 좋은 해결책이라고 생각하십니까? –
먼저 self.image가 None인지 확인한 다음, 그렇지 않으면 self.image.name이 None인지 확인하여 정말로 안전합니다. self.image가 None 인 경우 self.image.name과 같은 것이 없으므로 (None에는 속성이 없으므로) self.image.name을 확인하려고해도 오류가 발생합니다. –
고마워, 또! 위의 코드를 수정했습니다. –