Benutzerdefiniertes Django-Feld zum Speichern einer Liste von E-Mail-Adressen

8

Ich versuche, einem Django-Modell ein Feld hinzuzufügen, das eine Liste von E-Mail-Adressen darstellt. Ich möchte, dass ein Benutzer eine kommagetrennte Liste von Adressen in ein Formular im Admin eingibt, das meine App dann parsen wird, um eine Reihe von E-Mails zu versenden.

Meine aktuelle Implementierung deckt die Grundidee ab, hat aber eine erhebliche Einschränkung. Wenn ich im admin eine Zeichenfolge wie [email protected], [email protected] eintrage, schreibt sie diese korrekt als [u'[email protected]', u'[email protected]'] in die Datenbank. Der Administrator zeigt diesen serialisierten Wert anstelle der humanisierten Zeichenfolge an. Noch wichtiger: Wenn ich den Datensatz bearbeite und speichere, ohne Änderungen vorzunehmen, ändert sich bei der gleichen Konvertierung [u'[email protected]', u'[email protected]'] in [u"[u'[email protected]'", u"u'[email protected]']"] .

Wie konvertiere ich die Darstellung der Python-Liste zurück in eine Zeichenkette für den Admin? Ist das der Zweck der Methode value_to_string oder muss ich die Konvertierung an anderer Stelle vornehmen?

Mein aktuelles benutzerdefiniertes Modellfeld lautet wie folgt:

%Vor%

Dies basiert auf dem SeparatedValuesField , das hier beschrieben wird: Ссылка .

    
AndrewF 02.11.2010, 12:49
quelle

4 Antworten

3

Ich würde das nicht tun. Ich würde machen, was auch immer Ihre EmailListField zugeordnet werden soll Eins-zu-viele mit E-Mail-Adresse Felder sein.

    
hughdbrown 02.11.2010, 14:43
quelle
3

Die Frage ist tot, aber Sie können es tun, indem Sie die bestimmte Präsentation zu Ihrem Python-Wert hinzufügen

%Vor%     
eviltnan 12.12.2013 13:37
quelle
1

Es folgt das Modellfeld mit der Validierung jeder E-Mail und der korrekten Handhabung des Administrators. Basierend auf eviltnan und AndrewF Antworten.

%Vor%     
user2438271 06.05.2014 14:09
quelle
1

Ich basiere dies auf den Dokumenten, aber es ist stattdessen ein Modellfeld:

%Vor%     
radtek 03.01.2014 16:53
quelle

Tags und Links