Estoy creando una propiedad en un modelo de Django llamado "dirección". Quiero que la dirección consista en la concatenación de varios campos que tengo en mi modelo. El problema es que no todas las instancias de este modelo tendrán valores para todos estos campos. Entonces, quiero concatenar solo aquellos campos que tienen valores.Python/Django Concatenar una cadena en función de si existe esa cadena
¿Cuál es la mejor/más Pythonic manera de hacer esto?
Éstos son los campos relevantes del modelo:
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)
tan sólo pudiera hacer algo como esto:
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)
pero entonces no habría espacios en blanco adicionales en el resultado.
Podría hacer una serie de sentencias if y concatenar dentro de cada una, pero eso parece feo.
¿Cuál es la mejor manera de manejar esta situación?
Gracias.
Gracias por la adición de 'no ninguno' –
@DouglasMeehan: Claro. Además, si desea guardar al crear una lista temporal cada vez que llama al método, puede guardar los campos en una lista como un atributo de clase, ya que no va a cambiar entre instancias. – jdi
¿Qué es mejor en esta situación? tupla o lista? –