2017-05-31 10 views
0

データベース(SQLite)から文字列を分割しようとしました。文字列に改行があります。\ n 2つの部分に分割したいと思います。これは通常のString、例えばtext = "Hello \ n World"で動作します。しかし、私は私のデータベースから文字列を使用している場合、それは動作しません(テキストは、\でnはデータベースに正しく保存されている!!)Django splitデータベースからの文字列

マイコード文字列の最初の部分を取得するための:

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

これを試してみて、最後の4行にあなたのコードの代わりに次のコードを使用しますあなたはおそらく、可能な例外をキャッチする必要があります:

@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

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

ものの:

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

私は単語のリストに自分のテキストを分割したくありません...私のデータベースでは、これはテキストです "これは改行とテキスト\ nです"...この文字列を2つに分割したい。最初の部分は "This is a text"で、2番目の部分は "改行あり"にする必要があります –

+0

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

関連する問題