2012-09-13 3 views
0

나는 장고로 웹 사이트에서 일하고 있습니다.필터() 키워드는 문자열이어야합니다.

나는 사진과 사람을위한 두 가지 모델을 만들었습니다.

class Photo(models.Model):  
    photo = models.ImageField(upload_to = 'toto') 
    description = models.CharField(_('Description'), max_length = 250) 
    people = models.ManyToManyField('Person', related_name = _('Person')) 

    def display_img(self): 
     return u'<img src="%s" /> - %s - %s' % (self.photo, self.description, self.people) 

    display_img.allow_tags = True 

class Person(models.Model): 
    name = models.CharField(_('Name'), max_length = 50) 

내가 원하는 것은 내 사진에있는 사람을 태그 할 수 있다는 것입니다.

Django Version: 1.4.1 
Exception Type: TypeError 
Exception Value:  
filter() keywords must be strings 
Exception Location: C:\Python26\Lib\site-packages\django\db\models\fields\related.py in get_query_set, line 543 

및 I :

내 문제는 내가/수정할 때 관리자, 하지만와 함께 새로운 사진을 만들 수 있어요 나는이 오류 (http://127.0.0.1:8000/admin/module/photo/1/)를 볼 것입니다 그것을 이해할 수 없다.

답변

1

전체 역 추적

return u'<img src="%s" /> - %s - %s' % (self.photo, self.description, self.people) 

당신은 url ATTR 필요 유용했을 텐데.

people 필드의 related_name 특성에서 문제가 발생할 것으로 예상됩니다. 번역을 위해 이것을 표시했는데, 그건 이해가되지 않습니다. 이것은 공용으로 사용하는 것이 아니라 코드에 사용하는 속성입니다. _() 전화를 가져 가십시오.

+0

답변 해 주셔서 감사합니다. 문제가 해결되었습니다. 너는 천재적이야! related_name에 대한 이해가 잘못되었습니다. 나는 문서로 돌아갈 것이다. 다음 번에 추적을 제공 할 예정입니다.) 고맙습니다. – trnsnt

0

photo 객체,하지만 당신은 str으로이 얻을 원하는 :

return u'<img src="%s" /> - %s - %s' % (self.photo.url, self.description, self.people) 

내 솔루션에 대한 people :

people = models.ManyToManyField(PersonModel, related_name = _('Persons'), verbose_name=_('Person')) 
+0

답변 해 주셔서 감사합니다. 문제가 해결되지는 않지만 이미지 표시에 대한 다른 문제가 해결됩니다. 그것 없이는 이미지가 표시되지 않았습니다. 고맙습니다. – trnsnt

관련 문제