두 개의 다른 필드 (하나는 ManyToManyField)의 요소를 결합하여 제품 코드를 만들려고합니다. 그래서 같이 특정 제품 옵션이 선택되어 있는지 확인하려면 해당 필드를 반복하고, 그 이외의 편집 제품 코드로의 변화를 추가하고 싶습니다 : 나는 '순간Django Newbie ManyRelated Manager Iterable 질문이 없습니다.
class ShirtColorClass(models.Model):
shirtcolor = models.CharField(_('Shirt Color'), unique=True, max_length=40)
def __unicode__(self):
return self.shirtcolor
class ShirtClass(models.Model):
shirtmodel = models.CharField(_('Model of Shirt'), max_length=40)
shirtclr = models.ManyToManyField(_(ShirtColorClass, verbose_name='Shirt Color'))
shirtcode = models.CharField(_('Code for the shirt'), max_length=80, editable=False)
#...10 more fields...
def __unicode__(self):
return self.shirtmodel
def save(self):
for item in self.shirtclr: #these are the lines I'm not sure how to do
if 'Blue' in self.shirtclr:
self.shirtcode = u'%s%s' % ('B', self.shirtmodel)
else:
self.shirtcode = self.shirtmodel
super(ShirtClass,self).save()
을 ManyRelatedManager가 Iterable 메시지가 아니라는 걸 알기에, 내가 뭔가 잘못하고 있다는 것을 알았지 만, 나는 ... 어리석은 초보자 질문이기 때문에 미리 사과드립니다. 고맙습니다.
이 ...이 같은 뭔가 : 데프 (자동) 저장 : self.shirtclr.all()의 항목에 대한 : 항목의 경우 = = '청색' self.shirtcode = U '% S % S'% ('B', self.shirtmodel) 다른 : self.shirtcode = self.shirtmodel 슈퍼 (ShirtClass 자기) .save() 나는 그것을 작동시킬 수 없다. ShirtClass는 iterable이 아니다. 내가 도대체 뭘 잘못하고있는 겁니까? 다시 한번 감사드립니다. – bkev
나는 우리가 뒤로 물러나서 실제로 여기에서 성취하려는 것을 발견해야한다고 생각합니다. –
도움을 주셔서 대단히 감사합니다. 첫 번째 두 요소를 연결하여 세 번째 필드를 저장하려고합니다 ... 유일한 두 가지 중 하나는 ManyToManyField이고이 인스턴스의 내용에 액세스하는 적절한 방법을 알지 못합니다. 필자가 맨 위에 입력 한 내용을 살펴보면 for 루프가 필요 없다고 생각합니다 ... 전에 Python을 사용했을 때 "in"은 목록을 볼 때 저를 위해 작업을 완료했습니다. 그러나 "self.shirtcode.all()"의 'Blue'가 나를 위해 작동하지 않는 것 같습니다. 나는이 일이 성취하기가 어렵지 않아야한다고 생각하고 있습니다.하지만 저는 뭔가를 놓치고 있습니다. ... – bkev