Grüß euch,
Ich habe Django offen und suche etwas im Suchfeld von Personen oder so. Gebe "Peter" oben ein und er gibt mir alle Peters aus der Datenbank aus. Jetzt könnte Peter ja auch in der Spalte "2. Name" sein oder in der Firma "Peter" sein und in der Email vorkommen oder so aber ich will ja nur die wirklichen "Peters" haben. Fällt mir auf dem ersten blick nicht wirklich auf darum wollt ich fragen ob ich die Suche im Suchfeld in der Anzeige unten alla Googlesuche markieren kann? So dass Peter dann in der suche ersichtlich als "Peter" markiert ist? Weil dann fällt mir natürlich sofort auf dass mitten in der Email Peter oder im 2. Namenfeld Peter steht...
Gruß Chris
[Django] Suche markieren?
-
- User
- Beiträge: 1
- Registriert: Freitag 11. Dezember 2009, 16:08
Hi!
Da würde ich nach "Peter" suchen und mit "<b>Peter</b>" ersetzen.
Keep it simple!
Da würde ich nach "Peter" suchen und mit "<b>Peter</b>" ersetzen.
Keep it simple!
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Besser mit <strong>programmersbook hat geschrieben: Da würde ich nach "Peter" suchen und mit "<b>Peter</b>" ersetzen.

Was ist denn ein wirklicher Peter? Wodurch zeichnet er sich auf Datenebene aus?csc hat geschrieben: ...aber ich will ja nur die wirklichen "Peters" haben
Ich kenne mich mit Django nicht wirklich aus, daher die Frage: Geht es vom Plain-Text Suche oder suchst Du gezielt nach dem Wert eines Attributes?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich nehme an ein wirklicher Peter ist einer, dessen Vorname-Attribut "Peter" lautet. Ist halt noch die Frage ob Vornamen wie "Hans-Peter" oder "Salpeter" immer noch als wirklicher Peter gelten.Hyperion hat geschrieben:Was ist denn ein wirklicher Peter? Wodurch zeichnet er sich auf Datenebene aus?csc hat geschrieben: ...aber ich will ja nur die wirklichen "Peters" haben
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Mir reicht es erst mal, wenn die Suche dann unten in der Anzeigetabelle markiert ist. Aber mit einem einfachen <b></b> ist es da nicht getan denke ich.
Wie er das in Django sucht ist mir auch was fraglich... Aber theoretisch durchsucht er die Datenbank... aber kanns nicht wirklich sagen.
Wie er das in Django sucht ist mir auch was fraglich... Aber theoretisch durchsucht er die Datenbank... aber kanns nicht wirklich sagen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Welche Anzeigetabelle?csc hat geschrieben:Mir reicht es erst mal, wenn die Suche dann unten in der Anzeigetabelle markiert ist.
Wer ist 'er'?csc hat geschrieben:Wie er das in Django sucht ist mir auch was fraglich... Aber theoretisch durchsucht er die Datenbank... aber kanns nicht wirklich sagen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
@csc: Schau dir mal das an: http://www.python-forum.de/topic-19964.html
@Leonidas:
Wenn ich davon ein Objekt dann in Django erstelle sind wir uns doch einig, dass mir die erstellte / noch mehr erstellten Personen angezeigt werden oder? Das ist meine "Anzeigetabelle" Da hab ich nen Suchfeld drüber gapappt und wenn ich suche filtert er 1A alles raus aber er durchsucht halt jede Spalte da nach dem Begriff... Den wollte ich dann nach der Suche in der Ansicht einfach Fett oder Kursiv angezeigt haben wollen.
"Er" ist einfach mein Django Projekt ^^ Ich finde wenn man etwas personifiziert kann man sich besser über "Ihn" aufregen
@jens: Hmm... Ich verstehs noch nicht ganz was da passiert aber ich glaube das ist nicht ganz das, was mir weiterhilft.
Code: Alles auswählen
class Person(models.Model):
company =models.ForeignKey(Company,null=True,blank=True,verbose_name='Firma')
position = models.ForeignKey(Position,null=True,blank=True)
salut = models.ForeignKey(Salutation,verbose_name='Anrede')
adviser = models.ForeignKey(Adviser,null=True,blank=True,verbose_name='Betreuer')
titel = models.ForeignKey(Title,verbose_name='Titel',null=True,blank=True)
birth = models.CharField('Geburtstag',max_length=20,null=True,blank=True,help_text="Bitte halten sie folgene Formatierung ein: <em>DD.MM.YYYY</em>.")
fname = models.CharField('Vorname',max_length=100)
sname = models.CharField('Nachname',max_length=100)
comment = models.CharField('Kommentar',null=True,blank=True,max_length=40)
subkey = models.ManyToManyField(SubTag,blank=True,null=True,verbose_name='Stichwort')
.
.
.
"Er" ist einfach mein Django Projekt ^^ Ich finde wenn man etwas personifiziert kann man sich besser über "Ihn" aufregen

@jens: Hmm... Ich verstehs noch nicht ganz was da passiert aber ich glaube das ist nicht ganz das, was mir weiterhilft.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Auch wenn ich mich nicht in Django auskenne: Man wird doch auch in Django gezielte DB-Abfragen realisieren können, oder nicht? Also frage die DB doch einfach nur nach dem Feld "sname" und schon hast Du genau die, die Du wolltest!?!
Ne, das wir dann zu groß! Ich habe da in meiner Admin.py und da jetzt rum zu basteln, dass es dann schön aussieht und nicht zu viel Platz weg nimmt im View (im mom ist es eine einfache kleine Suchbox) finde ich dann überflüssig. Kann ja in meiner Ansicht einfach auf die Spalte "SNAME" klicken und dann sortiert er mir die Ansicht nach dem neu Laden der Seite. Wollte nur ne kleine grafische Hilfestellung haben oder so. Dachte, dass search_field vll sowas tolles schon hat oder es einfach ist hinzu zu fügen.
Code: Alles auswählen
search_fields = ['sname','bla','bla1',...]
Alles was in meinem "search_field" drin steht wird dann gesucht. Wenn ich ein Search_field mache wo nur ['sname'] drin steht kann er nur sname durchsuchen. Wenn ich da aber noch so wie ich ne multisuche mache und 3-4 andere Felder hinzufüge wie ['sname','fname','spitzname','Familienname'] dann sucht was ich eingebe in allen 4 Feldern. Wenn ich dann in dem Ergebnis was ich bekomme das gesuchte wort wenigstens markiert hätte oder so wäre ich schon glücklich. Aber er zeigt mir alle Ergebnisse aus SNAME FNAME SPITZNAME und FAMILIENNAME an ohne zu markieren, wo er genau der Wort gefunden hat.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Und genau das Problem hättest Du ja nicht, wenn Du nur nach einem Attribut suchen würdest und der Suchende das vorher festlegt.csc hat geschrieben:Aber er zeigt mir alle Ergebnisse aus SNAME FNAME SPITZNAME und FAMILIENNAME an ohne zu markieren, wo er genau der Wort gefunden hat.
So ungefähr habe ich dein Problem jetzt verstanden obwohl ich immer noch schwer auseinander halten kann was "er" macht und was dein eigener Code ist. Du lässt anscheinend im Endeffekt auf SQL-Ebene so etwas generieren wiecsc hat geschrieben:Aber er zeigt mir alle Ergebnisse aus SNAME FNAME SPITZNAME und FAMILIENNAME an ohne zu markieren, wo er genau der Wort gefunden hat.
Code: Alles auswählen
SELECT * From tabelle
WHERE
feld1 = 'wert' OR
feld2 = 'wert' OR
feld3 = 'wert'
Du könntest aber natürlich Einzelsuchen auf die betroffenen Felder absetzen.
Ja, so arbeitet das "search_field" in django. Jedes weitere Attribut was ich search_field übergebe ist ein weiteres OR in der SQL suche.
Vorher sagen was genau er suchen soll geht schwer und sieht dann einfach nicht gut aus für den Benutzer. Wollte die kleine Searchbox auf der Seite jetzt nicht unnötig groß machen oder mit radiobuttons für eine spezielle Auswahlsuche versehen!
Nur den Wert aus den Tabellen den ich bekomme was hervorheben.
Vorher sagen was genau er suchen soll geht schwer und sieht dann einfach nicht gut aus für den Benutzer. Wollte die kleine Searchbox auf der Seite jetzt nicht unnötig groß machen oder mit radiobuttons für eine spezielle Auswahlsuche versehen!
Nur den Wert aus den Tabellen den ich bekomme was hervorheben.
Unter "hervorheben" verstehe ich jetzt mal die Darstellung in HTML.csc hat geschrieben:Nur den Wert aus den Tabellen den ich bekomme was hervorheben.
Wenn es jetzt nur darum geht, den Suchbegriff in der Ausgabe anders darzustellen dann lauf doch einfach über die auszugebenden Daten und ersetze vor der Ausgabe dein Suchwort 'value' mit '<strong>value</strong>' - oder optimalerweise mit '<span class="searchvalue">value</span> wobei die Klasse searchvalue dann im CSS passend deklariert ist.