我在名爲「address」的Django模型上創建了一個屬性。我希望地址由我在模型上的多個字段的連接組成。問題是,並不是所有這些模型的實例都具有所有這些字段的值。所以,我想只連接那些有值的字段。Python/Django根據字符串是否存在來連接字符串
什麼是最好的/最Python的方式來做到這一點?
下面是該模型中的相關字段:
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語句並在每個語句中連接,但看起來很醜。
處理這種情況的最佳方法是什麼?
謝謝。
謝謝你的'不無' –
@DouglasMeehan:當然。此外,如果您希望每次調用方法時都保存創建臨時列表,則可以將列表中的字段保存爲類屬性,因爲它不會在實例之間更改。 – jdi
在這種情況下有什麼更好的?元組還是列表? –