Ich habe gerade erst angefangen zu lernen, das Django-Framework, und ich habe ein bisschen Schwierigkeiten zu verstehen, wie man ein Django-Modell-Feld als String erhalten. Das Model (MapArea) successfully retrieves data from the database, aber ich muss Teile der Daten in Strings konvertieren, um sein JSON-ähnliches Format in Listen zu parsen. Das Feld I in eine Zeichenfolge konvertieren wird als streets = models.CharField(max_length=2000)
Get Model-Feld als String
Hier ist meine Modellklasse:
class MapArea(models.Model):
country = models.CharField(max_length=500)
state = models.CharField(max_length=500)
city = models.CharField(max_length=500)
name = models.CharField(max_length=500)
lat = models.DecimalField(max_digits=15,decimal_places=6)
lon = models.DecimalField(max_digits=15,decimal_places=6)
streets = models.CharField(max_length=2000)`
def __str__(self):
return self.name
# Meta
class Meta:
abstract = True
# Do stuff with a string of street data from the database
def get_runways(streets):
return streetList
Gerade jetzt, ich bin versucht, ein custom template filter zu verwenden, um das Verfahren in meinem Modell zu nennen (MapArea), weil ich nicht herausfinden können scheinen, wie die Daten in einen String auf Zuordnung zu konvertieren:
@register.filter(name = 'get_streets')
def get_streets(obj, streets):
return obj.get_streets(streets)
dann Dies wird meine Vorlage als {{ maparea|get_streets:maparea.streets }}
verwendet, die mir den Fehler get_streets() takes 1 positional argument but 2 were given
gibt.
Idealerweise möchte ich einfach die Daten vor dem Zuweisen von Straßen konvertieren können. Zum Beispiel:
streets = get_streets(models.CharField(max_length=2000)) # Somehow converted to a string to use with the method
Ich bin nicht sicher, dass das mit dem gesamten Abfrage-Modell-System von dem, was ich versucht habe, möglich ist.
Also meine Frage ist: Wie kann ich die CharField-Daten als eine Zeichenfolge, um es mit meiner List-Konvertierungsmethode (get_streets()
) für die Verwendung in meiner Vorlage verwenden?
Vielen Dank im Voraus. Ich entschuldige mich, wenn das verwirrend ist. So gehen zwei Ausgaben weiter. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
Ich bin mir nicht sicher, was Sie fragen. 'streets' ist ein CharField, also ist alles, was darin enthalten ist, bereits eine Zeichenkette - keine Notwendigkeit für einen Template-Filter. –