Django añadir nueva línea (salto de línea) para mostrar una lista de algunas llaves foráneas.
Esto es lo que he hecho hasta ahora para romper una línea:
class CreatePost(models.Model):
subject = models.CharField(max_length=99)
desc = models.TextField(max_length=9000)
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user_post")
def __str__(self):
return format_html('ASUNTO: {} <br> DESCRIPCIÓN: {} <br> Email: {}'.format(self.subject, self.desc, self.user.username))
para admin.py:
class CreatePostAdmin(admin.ModelAdmin):
list_display = ('id', 'subject', 'desc')
class Meta:
model = models.CreatePost
class RespondToPostAdmin(admin.ModelAdmin):
list_display = ('id', 'post', 'to', 'content')
class Meta:
model = models.RespondToPost
Estoy tratando con RespondToPostAdmin
y obtengo un error con respecto al formato en el método especial __str__
:
Tipo de excepción: IndexError
Valor de excepción:
Índice de reemplazo 1 fuera de rango para la tupla de argumentos posicionales
No estoy seguro de por qué, cualquier ayuda es apreciada. Si hay una mejor solución para formatear mi método especial __str__
y agregar saltos de línea, por favor sugiérame.
edit:
El modelo admin no está reconociendo el método format_post
:
class RespondToPostAdmin(admin.ModelAdmin):
list_display = ('id', 'format_post', 'to', 'content')
class Meta:
model = models.RespondToPost
def format_post(self, obj):
return 'ASUNTO: {} %s <br> DESCRIPCIÓN: {} %s <br> Email: {} %s <br> '.format(obj.post.subject, obj.post.desc, obj.post.user.username)
“`
davy.ai
Parece que el problema con el código original en el método
__str__
del modeloRespondToPost
es que la tupla pasada aformat_html
tiene paréntesis adicionales a su alrededor, lo cual está provocando que el índice de reemplazo 1 esté fuera de rango. Aquí está el código corregido:Respecto al método
format_post
en la claseRespondToPostAdmin
, parece que la sintaxis de formateo de cadenas es incorrecta. Aquí está el código corregido:Esto debería permitir que el atributo
list_display
muestre correctamente la información del post formateada en la vista de administración deRespondToPost
, incluyendo los saltos de línea.