【发布时间】:2017-07-06 23:26:38
【问题描述】:
我正在尝试让 Django 模型自动为自身构造一个典型的 __str__(self) 值(在模型定义中),但基于 3 个 ManyToMany 字段。与使用基本字段类型(如前两个模型)不同,这似乎不适用于 M2M 字段(参见第三个模型)。 该模型可以正常迁移,但在管理员中引用时会导致错误。
非常感谢任何帮助,谢谢!
class Party(models.Model):
name=models.CharField("Party", max_length=150)
def __str__(self): # __unicode__ on Python 2
return self.name
class Meta:
ordering = ('name',)
class ValCharBehav(models.Model):
name=models.CharField("Value / Character / Behaviour", max_length=150, unique=True)
def __str__(self): # __unicode__ on Python 2
return self.name
class ValCharBehavWithPeople(models.Model):
vcb=models.ManyToManyField(ValCharBehav, verbose_name="Value / Character / Behvaiour")
bywhom=models.ManyToManyField(Party, verbose_name="By Whom", blank=True, related_name="valCharByWhomReverseAccessor")
towhom=models.ManyToManyField(Party, verbose_name="To Whom", blank=True, related_name="valCharToWhomReverseAccessor")
def __str__(self): # __unicode__ on Python 2
return self.vcb.name+": by: "+self.bywhom.name+", to: "+self.towhom.name
【问题讨论】: