Django - Заполнение поля на основе выбора пользователя из выпадающего списка
Я хочу иметь следующее:
Пользователь выбирает идентификатор местоположения из выпадающего списка, а затем в следующем поле автоматически отображается описание местоположения (название_округа_посткод), связанное с этим идентификатором.
У меня установлены две модели:
class UkTowns(models.Model):
id = models.IntegerField(primary_key=True)
locationid = models.CharField(max_length=8, blank=True, null=True)
name_county_postcode = models.CharField(max_length=100, blank=True, null=True)
def __str__(self):
return self.locationid
class Project(models.Model):
projectid = models.IntegerField('ProjectID', db_column='ProjectID', primary_key=True)
locationid = models.ForeignKey(UkTowns, models.DO_NOTHING, verbose_name="LocationID", db_column='LocationID', max_length=50)
project_name = models.CharField('Project Name', db_column='Project_Name', max_length=300)
author = models.ForeignKey(settings.AUTH_USER_MODEL, models.DO_NOTHING, db_column='Author_id')
def get_absolute_url(self):
return reverse('project-detail', kwargs={'pk': self.pk})
Следующие мнения:
class PostCreateView(LoginRequiredMixin, CreateView):
model = Project
fields = ['projectid','project_name','locationid']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
class PostUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView):
model = Project
fields = ['projectid','project_name','locationid']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
def test_func(self):
Project = self.get_object()
if self.request.user == Project.author:
return True
return False
И следующая html-страница:
{% extends "costcapture/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section">
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Project</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Submit</button>
</div>
</form>
{% endblock content %}
В настоящее время форма работает с полями из PostCreateView и PostUpdateView (она показывает больше, чем я включил сюда), она показывает выпадающий список всех locationid для выбора пользователем, но я не могу понять, как автоматически заполнить следующее поле с описанием этого id из UkTowns.
Любая помощь будет очень признательна!