2017-05-31 126 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 –