Python Django子串
我想知道,在从数据库中的列中检索数据块后,是否有方法在django中返回子字符串。在本例中,我尝试从“contents”列检索数据,以处理可用文本并返回它 问题列表检索法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
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的解决方案:-)