I m 寻求一种方式,使整个物体与所有物体的关系相序列。 我似乎只能从现在的序列器那里获得主要钥匙。
这是我的模式:
class Action(models.Model):
name = models.CharField( Action Name , max_length=250, unique=True)
message = models.TextField( Message , blank=True, null=True)
subject = models.CharField( Subject , max_length=40, null=True)
recipient = models.ManyToManyField( Recipient , blank=True, null=True)
def __str__(self):
return unicode(self.name).encode( utf-8 )
def __unicode__(self):
return unicode(self.name)
class Recipient(models.Model):
address = models.EmailField( Address , max_length=75, unique=True)
businessHours = models.BooleanField( Business Hours Only , default=False)
def __str__(self):
return unicode(self.address).encode( utf-8 )
def __unicode__(self):
return unicode(self.address)
我在这里管理着序号:
all = serializers.serialize( xml , list(Action.objects.select_related().all()))
如果我印刷了所有产出,只列出受援国的主要关键。
<field type="CharField" name="subject">On The Road Productions</field>
<field to="sla.recipient" name="recipient" rel="ManyToManyRel">
<object pk="29"></object>
</field></object>
<object pk="11" model="sla.action">
<field type="CharField" name="name">On The Road Productions</field>
<field type="TextField" name="message">
我还需要相关接收人的所有财产。 我如何能够做到这一点?
edit - 我发现这件事
我在Xml_serializer.py中发现,但我并不肯定如何加以修改。
def handle_m2m_field(self, obj, field):
"""
Called to handle a ManyToManyField. Related objects are only
serialized as references to the object s PK (i.e. the related *data*
is not dumped, just the relation).
"""
if field.creates_table:
self._start_relational_field(field)
for relobj in getattr(obj, field.name).iterator():
self.xml.addQuickElement("object", attrs={"pk" : smart_unicode(relobj._get_pk_val())})
self.xml.endElement("field")