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: Ссылка .
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.
Es folgt das Modellfeld mit der Validierung jeder E-Mail und der korrekten Handhabung des Administrators. Basierend auf eviltnan und AndrewF Antworten.
%Vor%