![](/img/trans.png)
[英]Django Split a charfield output which is seperated by ','(comma) into an array of strings.?
[英]Split a Model's CharField by comma to two variables
我有以下型號:
name = models.CharField(name="location's name",
unique=True, max_length=150, blank=False,
)
latitude = models.FloatField(name='Latitude',
unique=True, max_length=255, blank=False,
default=1)
longitude = models.FloatField(name='Longitude',
unique=True, max_length=255, blank=False,
default=1)
這是序列化程序:
from .models import LocationInfo
from rest_framework import serializers
class LocationInfoSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = LocationInfo
fields = ("location's name", 'Latitude', 'Longitude', 'area', 'date_added')
我希望緯度和經度保持分開的變量,但是當用戶輸入它們時,我希望它們被加入。
意思是,我猜是這樣的:
name = models.CharField(name="location's name",
unique=True, max_length=150, blank=False,
)
lat_lon = models.CharField(name='Latitude/Longitude',
unique=True, max_length=255, blank=False,
default=1)
lat, lon = lat_lon.split(',')
# serializers.py
from .models import LocationInfo
from rest_framework import serializers
class LocationInfoSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = LocationInfo
fields = ("location's name", 'lat', 'lon', 'area', 'date_added')
您可以通過在添加到數據庫之前進行拆分來實現這一點(拆分用戶輸入並具有兩個字段,一個用於緯度,一個用於經度),但是鑒於您當前的實現,您可以在模型上使用@property
裝飾器:
class YourModel(yourmodelparents):
<your_code>
@property
def lat(self):
return self.lat_lon.split(',')[0]
@property
def lon(self):
return self.lat_long.split(',')[1]
然后,當您擁有YourModel
的實例時,您可以訪問lat
和lon
字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.