2017-05-31 87 views
0

我尝试从数据库拆分字符串(SQLite)。该字符串有一个换行符\ n,我想分成两部分。它适用于普通字符串,例如text =“Hello \ n World”。但是,如果使用字符串从我的数据库不工作(文本在数据库中\ n正确保存!)Django从数据库拆分字符串

我对获取字符串的第一部分代码:

from django import template 
from products.models import News 

register = template.Library() 

@register.simple_tag 
def get_first_title(id): 
    search_value = "\n" 
    news = News.objects.values('title') 
    title = news.filter(pk=id) 
    number = str(title).find(search_value) 
    first_title = str(title)[0:number] 
    return first_title 

回答

1

试试这个:

@register.simple_tag 
def get_first_title(id): 
    news = News.objects.get(pk=id) 
    return news.title.split("\n")[0] 

虽然你或许应该抓住更多钞票有异常:

@register.simple_tag 
def get_first_title(id): 
    try: 
     news = News.objects.get(pk=id) 
     splitted_title = news.title.split("\n") 
     if splitted_title: 
      return splitted_title[0] 
    except News.DoesNotExist: 
     # raise exception or return None or something 
+0

它的工作原理。 。谢谢!! :) –

+0

没问题。很高兴我能帮上忙! –

0

使用下面的代码,而不是你的代码的最后4行

title = news.filter(pk=id) 
number = str(title).split(" ") 
# number is a list of strings 
print(number , len(number)) 
+0

我不希望我的文字中拆分单词列表...在我的数据库I'have如文本“这是一个文字\ n与断行“...我想将这个字符串分成两部分。第一部分应该是“这是一个文本”,第二部分应该是“用换行符” –

+0

https://media.readthedocs.org/pdf/python-guide/latest/python-guide.pdf –