Bir ürün kodu (admin'te), bir diğeri ManyToManyField olan iki başka alandan birleştirerek bir ürün kodu oluşturmaya çalışıyorum. Öyle gibi belirli bir ürün seçeneği seçildi olmadığını öğrenmek için o alanın yinelemenize ve bu düzenlenemeyen ürün koduna bunun bir varyasyonunu eklemek istiyorsunuz: Ben andaDjango Newbie ManyRelated Manager Yinelenen Bir Soru Değil
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'ın yinelenemeyen bir mesaj almasını sağlıyorum, bu yüzden yanlış bir şey yaptığımı biliyorum, ama ne olduğunu bilmiyorum ... Bu aptalca yeni bir soru olmak için şimdiden özür dilerim. Teşekkür ederim.
... Bu gibi pek bir şey: def (öz) kaydedin: self.shirtclr.all() öğenin : öğe ise = = 'Mavi': self.shirtcode = u '% s% s' % ('B', self.shirtmodel) başka : self.shirtcode = self.shirtmodel süper (ShirtClass, kendinden) .save() Bunu işe yaratamıyorum ... ShirtClass yinelenen bir hata değil. Neyi yanlış yapıyorum? Tekrar teşekkürler. – bkev
Geri adım atmamız ve aslında burada neyi başarmaya çalıştığınızı öğrenmemiz gerektiğini düşünüyorum. –
Yardımlarınız için çok teşekkür ederim. İlk iki bileşenini birleştirerek üçüncü bir alanı kaydetmeye çalışıyorum ... tek sorun, ilk iki yöntemden birinin ManyToManyField olması ve içeriğine bu şekilde erişmenin uygun yolunu bilmem. En üste yazdıklarıma baktığımda, bir döngü için ihtiyacım olduğunu düşünmüyorum ... daha önce Python'u kullandığımda, "içeri" bir listeye bakarken benim için çalışmamı yaptı. Ancak, "self.shirtcode.all()" içinde "Mavi" ise benim için çalışmıyor gibi görünüyor. Bunu başarmak için zor bir şey olmamalı diye düşünüyorum ... ama bir şey kaçırmıyorum ... – bkev