Python, Django rest framework, создайте поле, содержащее варианты или свободный текст - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть Django API остального фреймворка.

Я хочу добавить к нему поле, содержащее либо варианты, либо свободный текст.

Я хочу это, если пользователь решил добавить новое значение в поле, оно будет добавлено в БД.

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

class Points(models.Model):
    mission_name = models.CharField(name='MissionName',
                                    verbose_name="Mission Name",
                                    unique=True,
                                    max_length=255,
                                    blank=False,
                                    help_text="Enter the mission's name"
                                    )

        location_name = models.CharField(choices= # fetch known locations from the DB 
                                                  #or create a new one) 
                                     # Show existing options or input a new one.
                                     # If an existing location has been chosen then it's Latitude and Longitude are of the fetched object.
                                     # Pretty sure that this kind of action belongs in the serializer or the view.



    latitude = models.FloatField(name="GDT1Latitude",
                                 verbose_name="GDT 1 Latitude",
                                 unique=False, max_length=255, blank=False,
                                 help_text="Enter the location's Latitude, first when extracting from Google Maps.",
                                 default=DEFAULT_VALUE)
    longitude = models.FloatField(name="GDT1Longitude",
                                  verbose_name="GDT 1 Longitude",
                                  unique=False, max_length=255, blank=False,
                                  help_text="Enter the location's Longitude, second when extracting from Google Maps.",
                                  default=DEFAULT_VALUE)

    area = models.CharField(
        name='Area',
        max_length=8,
        choices=AREAS,
    )

1 Ответ

0 голосов
/ 01 апреля 2020

Вы должны создать другую модель Location и указать внешний ключ в своей точечной модели:

enter code here
class Points(models.Model): 
location_name = models.ForeignKey(Location,on_delete=models.SET_NULL,null=true)


class Location(models.Model):
#any info you want to store
...