2017-05-31 2 views
0

Ich versuche, eine Zeichenfolge aus einer Datenbank (SQLite) zu trennen. Die Zeichenfolge hat einen Zeilenumbruch \ n und ich möchte sie in zwei Teile teilen. Es funktioniert mit einem normalen String zum Beispiel text = "Hello \ n World". Aber wenn ich die Zeichenfolge aus meiner Datenbank verwende es nicht funktioniert (der Text richtig mit \ n in der Datenbank gespeichert ist !!)Django Split String aus der Datenbank

My-Code für das Erhalten des ersten Teils der Zeichenfolge:

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 

Antwort

1

starten:

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

Obwohl

@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

Es funktioniert. Danke !! :) –

+0

Kein Problem. Froh, dass ich helfen konnte! –

0

Verwenden Sie den folgenden Code anstelle des Codes in den letzten 4 Zeilen

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

ich möchte nicht zu meinem Text in einer Liste von Wörtern ... In meiner Datenbank I'have ein Text wie „Dies ist ein Text \ n mit einem Zeilenumbruch aufgeteilt: Sie sollten wahrscheinlich posible Ausnahmen fangen "... Ich möchte diese Saite in 2 Teile aufteilen. Der erste Teil sollte "Dies ist ein Text" sein und der zweite Teil sollte "mit einem Zeilenumbruch" sein. –

+0

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