Python Django子串

Python Django子串,python,django,Python,Django,我想知道,在从数据库中的列中检索数据块后,是否有方法在django中返回子字符串。在本例中,我尝试从“contents”列检索数据,以处理可用文本并返回它 问题列表检索法 def prepare_questions(subject_id, scope, sort, topic, subtopic): question_list = Question.objects.filter(subject=subject_id) return question_list 包含内容的模型 class

我想知道,在从数据库中的列中检索数据块后,是否有方法在django中返回子字符串。在本例中,我尝试从“contents”列检索数据,以处理可用文本并返回它

问题列表检索法

def prepare_questions(subject_id, scope, sort, topic, subtopic):
   question_list = Question.objects.filter(subject=subject_id)
return question_list
包含内容的模型

class Question(models.Model):
   subject = models.ForeignKey(Subject)
   content = models.TextField(verbose_name=_('Content'))
我希望做的是从“内容”中获取问题列表的数据,通过python中的子字符串方法传递它。我不确定我应该从这里采取什么措施。此外,我希望将方法结果作为问题列表的一部分返回,并将新键标记到方法返回值,因为我不希望覆盖检索到的原始“contents”值


任何指点或参考非常感谢!谢谢

这就是你想要的吗:

return [{'substring': substring_method(q.content), 'question': q} for q in question_list]
当然,您必须用您想要的任何Python子字符串方法来定义或替换
substring\u方法

这行代码使用Python的“列表理解”语法将
Question\u list
中的每个
Question
对象映射到一个包含两项的字典中,即
子字符串(子字符串)和
问题(原始
Question
对象)

下面是如何使用新的
准备问题

questions = prepare_questions( ... )  # whatever arguments
first_question = questions[0]  # let's assume there's at least 1
print first_question['substring']  # prints the substring of the first question's content
print first_question['question'].content  # prints the first question's full content
为了完整起见,这里有一个简单的示例“子字符串\u方法”:

def substring_method(s):
    return s[1:4]  # use Python slice syntax to return 2nd through 4th chars of string

这就是你想要的吗:

return [{'substring': substring_method(q.content), 'question': q} for q in question_list]
当然,您必须用您想要的任何Python子字符串方法来定义或替换
substring\u方法

这行代码使用Python的“列表理解”语法将
Question\u list
中的每个
Question
对象映射到一个包含两项的字典中,即
子字符串(子字符串)和
问题(原始
Question
对象)

下面是如何使用新的
准备问题

questions = prepare_questions( ... )  # whatever arguments
first_question = questions[0]  # let's assume there's at least 1
print first_question['substring']  # prints the substring of the first question's content
print first_question['question'].content  # prints the first question's full content
为了完整起见,这里有一个简单的示例“子字符串\u方法”:

def substring_method(s):
    return s[1:4]  # use Python slice syntax to return 2nd through 4th chars of string

在模型上定义方法:

class MyModel(models.Model):
    ...
    def contents_substring(self):
        # do stuff
        return the_substring
然后,无论何时访问实例(无论是在实例本身还是在循环中),您都可以执行以下操作:

instance.contents_substring()
或在模板中:

{{ instance.contents_substring }}

在模型上定义方法:

class MyModel(models.Model):
    ...
    def contents_substring(self):
        # do stuff
        return the_substring
然后,无论何时访问实例(无论是在实例本身还是在循环中),您都可以执行以下操作:

instance.contents_substring()
或在模板中:

{{ instance.contents_substring }}

你对你希望做什么的描述很不清楚。你能举一个输入和输出数据的例子吗?你能更详细地说明内容栏中存储的内容吗?您在内容列表的每个条目中解析什么?样本数据将是一个很好的方式来解释你试图实现什么。你对你希望做什么的描述是相当不清楚的。你能举一个输入和输出数据的例子吗?你能更详细地说明内容栏中存储的内容吗?您在内容列表的每个条目中解析什么?样本数据将是一种很好的方式来解释您试图实现的目标。是的,这是一种更好、更简单的方法。:-)是的,这是一种更好、更简单的方法。:-)您好,谢谢您的输入,它看起来可行,但我使用了Chris Patt的解决方案:-)您好,谢谢您的输入,它看起来可行,但我使用了Chris Patt的解决方案:-)