Автозаполнение полей django при вводе идентификатора пользователя
я искал решение для автоматического заполнения всех полей на странице профиля моего исполнения, 2
У меня есть модель формы с семью полями: номер_исполнения, дело, клиент, оппонент, дата, суд, обновление. (дата установлена на auto_now и поэтому не появляется в форме)
В принципе, все, что я хочу, это когда я ввожу номер_исполнения, он должен автоматически заполнить все остальные поля, которые будут взяты из базы данных.
буду благодарен за помощь, я все еще новичок в программировании, поэтому буду признателен за поддержку :)
МОДЕЛИ
from django.db import models
class Execution(models.Model):
COURT = (
('Muscat', 'Muscat'),
('Seeb', 'Seeb'),
)
execution_number= models.CharField(max_length =200, null= True)
matter=models.CharField(max_length =200, null= True)
client = models.CharField(max_length =200, null= True)
opponent =models.CharField(max_length =200, null= True)
date= models.DateTimeField(auto_now_add=True, null= True)
court= models.CharField(max_length =200, null= True, choices = COURT )
update = models.CharField(max_length =200)
def __str__(self):
return self.execution_number
ПРОСМОТРОВ
def search_execution(request): номер_исполнения = request.execution_number # form = ProfileUpdateForm(request.POST, request.FILES) <-- remove
if request.method == 'POST':
form = Execution(request.POST, request.FILES, instance=execution_number)
if form.is_valid():
form.save() # <-- you can just save the form, it will save the profile
# user.save() <-- this doesn't help you, it doesn't save the profile and since user isn't changed you don't need to save it!
return redirect('/search_execution')
# else:
# form = ProfileUpdateForm() <-- don't clear the form!
else: # GET
form = Execution(instance=execution_number)
context = {
'form' : form
}
return render(request, 'accounts/search_execution.html', context)
FORM
from django.forms import ModelForm from .models import Execution
class ExecutionForm(ModelForm): class Meta: модель = Исполнение поля = 'all'
Я не знаю, правильный ли это подход, но в данном случае я бы использовал Django Rest Framework для создания конечной точки API, которая возвращает список объектов Execution, а затем использовал javascript прямо на странице для загрузки этого списка и проверки по нему по событию onInput(). Если есть совпадение, то вы можете легко заполнить все поля формы.
Поймите, что код представления Django выполняется на сервере и поэтому не имеет доступа к странице, с которой взаимодействует пользователь.
Любое действие автозавершения должно происходить в браузере пользователя с помощью javascript. С помощью javascript вы можете асинхронно получить доступ к информации через вызовы API и таким образом проверить, совпадает ли вводимая информация с любым идентификатором исполнения, присутствующим в вашей базе данных.