我正在创建一个名为“address”的Django模型属性。我希望地址由我在模型上拥有的多个字段的串联组成。问题是,这些字段并非所有此模型的实例都具备值。因此,我只想串联具有值的字段。
哪种方法是最佳/最Pythonic的呢?
以下是模型中相关的字段:
house = models.IntegerField('House Number', null=True, blank=True)
suf = models.CharField('House Number Suffix', max_length=1, null=True, blank=True)
unit = models.CharField('Address Unit', max_length=7, null=True, blank=True)
stex = models.IntegerField('Address Extention', null=True, blank=True)
stdir = models.CharField('Street Direction', max_length=254, null=True, blank=True)
stnam = models.CharField('Street Name', max_length=30, null=True, blank=True)
stdes = models.CharField('Street Designation', max_length=3, null=True, blank=True)
stdessuf = models.CharField('Street Designation Suffix',max_length=1, null=True, blank=True)
我可以这样做:
我只需要做类似于以下的事情:
def _get_address(self):
return "%s %s %s %s %s %s %s %s" % (self.house, self.suf, self.unit, self.stex, self.stdir, self.stname, self.stdes, self.stdessuf)
但是这样会在结果中留下额外的空格。
我可以使用一系列 “if” 语句并在每个语句内进行连接,但这看起来很丑陋。
处理这种情况的最佳方法是什么?
谢谢。
self._address_fields
引用它。 - jdi