Cómo crear una babosa única en Django
Estoy tratando de crear una babosa única en Django para poder acceder a una publicación a través de una URL como esta:http://www.example.com/buy-a-new-bike_Boston-MA-02111_2
Los modelos relevantes:
class ZipCode(models.Model):
zipcode = models.CharField(max_length=5)
city = models.CharField(max_length=64)
statecode = models.CharField(max_length=32)
class Need(models.Model):
title = models.CharField(max_length=50)
us_zip = models.CharField(max_length=5)
slug = ?????
def get_city():
zip = ZipCode.objects.get(zipcode=self.us_zip)
city = "%s, %s %s" % (zip.city, zip.statecode, zip.zipcode)
return city
Un registro ZipCode de muestra:
código postal = "02111"ciudad = "Boston"statecode = "MA"Una muestra Necesidad de registro:
title = "compra una bicicleta nueva"us_zip = "02111"slug = "buy-a-new-bike_Boston-MA-02111_2" (deseado)¿Algún consejo sobre cómo crear esta babosa única? Su composición es:
Need.title + "_" + Need.get_city () + "_" + un entero incremental opcional para hacerlo único. Todos los espacios deben reemplazarse con "-".NOTA: Mi slug deseado arriba asume que el slug "buy-a-new-bike_Boston-MA-02111" ya existe, que es lo que tiene "_2" agregado para hacerlo único.
He intentado django-extensiones, pero parece que solo puede tomar un campo o tupla de campos para construir la babosa única. Necesito pasar la función get_city () así como el conector "_" entre el título y la ciudad. ¿Alguien resolvió esto y está dispuesto a compartir?
¡Gracias!
ACTUALIZAR
Ya estoy usando django-extensiones para su UUIDField, por lo que sería bueno que también pudiera ser utilizado para su AutoSlugField.