最近私はDjangoフレームワークを学び始めました.Django Modelフィールドを文字列として取得する方法を理解するのに少し問題があります。モデル(MapArea)successfully retrieves data from the databaseが、JSON形式の形式をリストに解析するために、データの一部を文字列に変換する必要があります。モデルフィールドを文字列として取得
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
今、私は私のモデル(MapAreaでメソッドを呼び出すためにcustom template filterを使用しようとしている:私は、文字列に変換する必要があるフィールドは、ここでstreets = models.CharField(max_length=2000)
は私のモデルクラスであるとして設定されています)、私は割り当てにデータを文字列に変換する方法を見つけ出すように見えることはできませんので:
@register.filter(name = 'get_streets')
def get_streets(obj, streets):
return obj.get_streets(streets)
そして、これは私にエラーget_streets() takes 1 positional argument but 2 were given
を与える{{ maparea|get_streets:maparea.streets }}
としての私のテンプレートを、使用されています。
理想的には、通りを割り当てる前にデータを変換することができます。例:
streets = get_streets(models.CharField(max_length=2000)) # Somehow converted to a string to use with the method
私が試みてきたことから、クエリシステム全体のモデルシステムで可能かどうかはわかりません。
私の質問は、どのように私のテンプレートで使用するリスト変換方法(get_streets()
)でそれを使用するための文字列としてCharFieldデータを取得できますか?
ありがとうございます。これが混乱している場合はお詫び申し上げます。ここでは2つの問題の一種が続きます。追加情報が必要な場合はお知らせください。
あなたが何を求めているのか分かりません。 'streets'はCharFieldなので、その中にあるものはすでに文字列です。テンプレートフィルタは必要ありません。 –