我正在尝试创建一个表单,可以通过使用 django 在表单中输入字段来从数据库自动填充表单详细信息
我能够看到它是用 javascript 完成的,但我不知道如何将它连接到 django 中的views.py
在 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);
});
});