1
我需要一些問題的幫助。Python/Django迭代ManyToMany相關領域
我有三種模型,Reference,Relation ans Circuit。關係是第一個內聯。電路和關係是相關的。我必須做的是: - 我在參考文獻1中,並且我在Relation1中選擇了一些Circuits到RelationN。 - 保存時,我需要將Relation1保存到RelationN,以及其他RelationFirst(保存參考模型時創建),其中必須包含該參考的其他關係中存在的所有電路。
,我現在所擁有的代碼,誰不這樣做,就是:
class Reference(models.Model):
title = models.CharField(max_length=200, verbose_name = _('title'))
def __unicode__(self):
return u"\n %s" %(self.title)
def save(self, force_insert=False, force_update=False, *args, **kwargs):
is_new = self.id is None
super(Reference, self).save(force_insert, force_update, *args, **kwargs)
if is_new:
Relation.objects.create(reference=self, first = True)
relation = Relation.objects.get(reference=self, first = True)
circuit = Circuit.objects.get(name = '0')
relation.circuit.add(circuit)
class Relation(models.Model):
first = models.BooleanField()
reference = models.ForeignKey(Reference)
circuit = models.ManyToManyField('Circuit', verbose_name = _('Circuits'), null=True, blank=True, related_name = 'relation_circuit')
def __unicode__(self):
return u"%s" %(self.reference)
def save(self, force_insert=False, force_update=False, *args, **kwargs):
relation1 = Relation.objects.get(reference=self.reference, first = True)
super(Relation, self).save(force_insert, force_update, *args, **kwargs)
for circ in self.circuits:
circuit = Circuit.objects.get(pk = circ)
relation1.circuit.add(circuit)
任何幫助嗎?因爲我無法迭代ManyToManyRelatedField,所以我不知道該怎麼做。非常感謝你!
做究竟是什麼?應該更改哪部分代碼?這是如何解決OP問題的?這些回覆中缺少的東西很少。 – UmNyobe
你想重新發佈一個字符串的所有代碼?所以它必須在第3個字符串中保存Relation類的方法。 –
不,但通過查看您的帖子,沒有線索知道正在解決什麼問題。你可以這樣說:你的代碼中的問題是'for self.circuit:'中的循環。它不工作,因爲等等等等......你應該在self.circuit.all()中使用'for circ:'而不是 – UmNyobe