如何通过使用 django 在一个文本框中输入内容来自动从数据库填充所有输入字段?

问题描述 投票:0回答:1

我正在尝试创建一个表单,可以通过使用 django 在表单中输入字段来从数据库自动填充表单详细信息

我能够看到它是用 javascript 完成的,但我不知道如何将它连接到 django 中的views.py

django
1个回答
0
投票

在 Django 中创建一个端点,返回您想要自动填充的数据。这可能是views.py 文件中的一个函数,用于查询数据库并返回 JSON 响应。 蟒蛇

from django.http import JsonResponse
from django.core import serializers
from .models import YourModel

def get_data(request):
    # Get the data from your model
    data = YourModel.objects.filter(...)  # filter based on your needs
    data_json = serializers.serialize('json', data)
    return JsonResponse(data_json, safe=False)

将其添加到 urls.py

from django.urls import path
from . import views

urlpatterns = [
    # your other urls
    path('get_data/', views.get_data, name='get_data'),

使用获取API

document.getElementById('your_input_field').addEventListener('change', 
function() {
    fetch('/get_data/', {
        method: 'GET',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({
            'input_field': document.getElementById('your_input_field').value
        })
    })
    .then(response => response.json())
    .then(data => {
        // Use the 'data' to autofill your form
        document.getElementById('another_field').value = data.another_field;
        // Repeat for all fields you want to autofill
    })
    .catch((error) => {
    console.error('Error:', error);
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.