Разделить CharField модели запятыми на две переменные - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть следующая модель:

    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')


1 Ответ

0 голосов
/ 21 февраля 2020

Этого можно добиться, разделив перед добавлением в БД (разделив ввод пользователя и имея два поля, одно для широты и одно для долготы), но, учитывая вашу текущую реализацию, вы можете использовать @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.

...