在Python速成课程第18章中,我们制作了一个学习日志网站。
我不能只返回一个字符的前50个字符
from django.db import models
from django.contrib.auth.models import User
class Topic(models.Model):
"""A topic the user is learning about"""
text = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
"""Return a string representation of the model."""
return str(self.text)
class Entry(models.Model):
"""Something specific learned about a topic"""
topic = models.ForeignKey(Topic, on_delete=models.PROTECT)
text = models.TextField()
date_added = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name_plural = 'entries'
def __str__(self):
"""Return a string representation of the model."""
if len(self.text) > 50:
return f"{str(self.text)[:50]}..."
else:
return f"{str(self.text)}"
我是否包含if len(self.text)也是一样的
我在_delete=models.PROTECT上使用了,因为我知道CASCADE会导致一些奇怪的问题,比如意外删除了一些您不想删除的内容
是不是因为
models.TextField()
函数导致了这种情况?我是否必须进行str()
转换才能使self.text
变量“可订阅”?
根据我看到的,你可以说
def __str__(self):
return self.text[:50]
而且
在超文本标记语言形式中调用时可以使用截断字过滤器
您没有显示views.py,但假设您有一个视图,该视图返回到一个页面,其中包含Entry类中的所有条目,您碰巧说{%for Entry in Entries%}您只需添加
{{Entry:text | truncatewords:50}}
{%endfor%}
您可以在文档中了解更多信息
在Django 3.0models.TextField
中,如果将其称为self.text
或Entry.text
,则返回字符串(str
)。所以您不需要调用str()
函数。
如果你想得到前50个字符:
def __str__(self):
return self.text[:50]
在Python中,如果对可订阅对象使用[:50]
,它将返回对象的前50个部分(如果少于50个部分,则返回全部)。
我希望我的回答能帮助你。
主类: 我尝试的任何与存储库相关的方法都返回null。有人能帮我提个建议吗?
问题内容: 我想制作一个将读取文本文件并存储每个出现的字符的Java程序。因此它将考虑标点符号,字母,数字,大写,小写等。给定一个文本文件,如: 玫瑰是红色的, 紫罗兰是蓝色的。 打印值将如下所示: R:1 r:3 我:1 ,:1 [ect] 到目前为止,我已经能够读取文件并计算单词,行数和字符数。 我还没有学过哈希图/表或树形图;寻找有关如何使用数组,数组列表或链表存储所有字符类型及其出现的建议
NowCoder 题目描述 在一个字符串中找到第一个只出现一次的字符,并返回它的位置。 // Input: abacc Output: b 解题思路 最直观的解法是使用 HashMap 对出现次数进行统计,但是考虑到要统计的字符范围有限,因此可以使用整型数组代替 HashMap,从而将空间复杂度由 O(N) 降低为 O(1)。 // java public int FirstNotRepeat
问题内容: 我想从bash脚本执行python脚本,并且要将python脚本的输出存储在变量中。 在我的python脚本中,我将一些内容打印到屏幕上,最后我返回一个带有以下内容的字符串: 在我的bash脚本中,我执行了以下操作: 但是,当我检查with的值时,我得到了Python脚本打印到屏幕上的所有内容,但 没有 返回值! 我应该怎么做? 编辑:我需要该字符串,因为它告诉我Python脚本创建的
我想做一个java程序,将读取一个文本文件,并存储每一个单一的字符出现。因此,它将解释标点符号,字母,数字,大写,小写等。给定一个文本文件,如: 打印值将如下所示: R:1 r:3