Django如何将TextField的前10个字符作为字符串?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django如何将TextField的前10个字符作为字符串?相关的知识,希望对你有一定的参考价值。
请原谅我的问题,我是Python和Django的初学者。
我这里有一个class Response
,它继承自models.Model
。其中一个领域是response_content
,一个TextField
。我有一个函数__str__
,它应该返回对象的字符串表示。这个字符串的第一部分是对象的id
,然后是空格分隔符,然后是字段self.author_name
,然后是管道分隔符,之后我想将self.response_content
的前10个字符显示为字符串。我不想将整个self.response_context
转储到字符串中,因为这是TextField
与max_length=4000
,所以它可以变得非常大!我想让这个字段的前10个字符显示为一个字符串,这样我就能看到并立即记住这些显示字符中response_content
的其余部分。这就是我如何区分个别Response
s。
我想用必要的表达式替换???
。我还不太了解语法,所以请不要讨厌我提出这个问题。
这是我的models.py
文件:
from django.db import models
# Create your models here.
class Response(models.Model):
# Default field options: (null=False, blank=False)
# Bu default, Django gives each model the following field:
# id = models.AutoField(primary_key=True)
#
# The name of the author.
author_name = models.CharField(max_length=32)
# The author's email address.
author_email = models.EmailField(max_length=254)
# The date and time when this response was made.
response_date = models.DateTimeField(auto_now_add=True)
# The text content of the response.
response_content = models.TextField(max_length=4000)
# This is used for returning a string description of the Response for the
# admin interface.
def __str__(self):
return (str(self.id) + " " + self.author_name + "|" + ???)
答案
你可以用self.response_content[:10]
切割字符串。
在你的情况下:
def __str__(self):
return (str(self.id) + " " + self.author_name + "|" + self.response_content[:10])
另一答案
这可以通过两种方式完成
- 返回
response_content
只需切片如下。
def __str__(self):
return (str(self.id) + " " + self.author_name + "|" + self.resonse_content[:10])
- 通过使用Django默认过滤器即
truncatechars
。
from django.template.defaultfilters import truncatechars
class Response(models.Model):
...
def __str__(self):
return (str(self.id) + " " + self.author_name + "|" + truncatechars(self.resonse_content, 10))
以上是关于Django如何将TextField的前10个字符作为字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用PySpark将SparseVector中的前X个单词转换为字符串数组