【发布时间】:2014-10-24 11:24:06
【问题描述】:
我有两个表,Housing 和 Photo(一对多关系)。
住房表根据类型和交易字段返回 unicode。我希望Photo unicode 成为Housing 的 unicode + 它自己的主键。这可能吗?
class Housing(models.Model):
type = models.CharField(max_length=16)
transaction = models.CharField(max_length=16)
def __unicode__(self):
if self.type.lower() == "house" and self.transaction.lower() == "sell":
return "HS" + str(self.pk+100)
elif self.type.lower() == "house" and self.transaction.lower() == "rent":
return "HR" + str(self.pk+100)
elif self.type.lower() == "apt" and self.transaction.lower() == "sell":
return "AS" + str(self.pk+100)
elif self.type.lower() == "apt" and self.transaction.lower() == "rent":
return "AR" + str(self.pk+100)
else:
return "ERROR" + str(self.pk+100)
class Photos(models.Model):
housing= models.ForeignKey(Housing)
photo_url = models.ImageField(upload_to="photos/", blank=True, null=True)
def __unicode__(self):
return "Img " + str(self.pk)
【问题讨论】:
-
顺便说一句,您应该避免将复杂的逻辑放在
__unicode__方法中。最好把它放在一个单独的方法中,然后从__unicode__调用它。 -
谢谢,有什么原因吗?
标签: python django unicode models