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转储到字符串中,因为这是TextFieldmax_length=4000,所以它可以变得非常大!我想让这个字段的前10个字符显示为一个字符串,这样我就能看到并立即记住这些显示字符中response_content的其余部分。这就是我如何区分个别Responses。

我想用必要的表达式替换???。我还不太了解语法,所以请不要讨厌我提出这个问题。

这是我的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])
另一答案

这可以通过两种方式完成

  1. 返回response_content只需切片如下。
def __str__(self):
        return (str(self.id) + " " + self.author_name + "|" + self.resonse_content[:10])
  1. 通过使用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个单词转换为字符串数组

新手问题。如何将 TextField 的水平大小设置为 N 个字符

如何使用 CSS 仅显示字符串的前 10 个字符?

使用 Django 模板过滤器限制字符数

如何将 Json 数据显示到 Django 模板?

iOS - 更改为不同的 TextField 时保持 TextField 状态的输入键盘