Как отобразить значения выбранного элемента в выпадающем списке всех элементов из базы данных в шаблоне django

Пожалуйста, помогите получить Revision и Company выбранного проекта в выпадающем списке в software.html шаблоне django, изображение с более подробной информацией в приложении, Спасибо!

models.py

`    class PROJ(models.Model):
    User=get_user_model()
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    project_id=models.CharField(max_length=100, null=True, blank=True, db_index=True)
    Company=models.CharField(max_length=100, null=True, blank=True)
    Revision=models.CharField(max_length=100, null=True, blank=True)`

urls.py urlpatterns = [ path('software/', views.software, name='software'),

views.py

`    def software(request):
    assert isinstance(request, HttpRequest)
    PROJS = PROJ.objects.filter(author=request.user)
    return render(
    request,
    'app/software.html',
    {
     'year':datetime.now().year,
    'PROJS': PROJS,
    }
    )`

software.html

`    <label class="col-md-3 col-form-label">Project/Site:</label>
    <div class="col-md-9">
    <select class="form-select" name="Select" id="Select">
    {% for PROJ in PROJS %}
    <option value="{{ PROJ.id }}">{{ PROJ.project_id }}</option>
    {% endfor %}
    </select>
    </div>
    <label class="col-md-3 col-form-label">Revision:</label>
    <div class="col-md-9">
    <input type="text" class="form-control" name="Revision" placeholder="Revision" id="Revision" value="{{PROJ.Revision}}">
    </div>
    <label class="col-md-3 col-form-label">Company:</label>
    <div class="col-md-9">
    <input type="text" class="form-control" name="Company" placeholder="Company" id="Company" value="{{PROJ.Company}}">
    </div>`

descriptions

Спасибо, я сделал это с помощью javascript - JSON))), в помощь:

макет

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

просмотров

def software(request):
assert isinstance(request, HttpRequest)
PROJS = PROJ.objects.filter(author=request.user)
return render(
request,
'app/software.html',
{
'PROJS': PROJS,
 'PROJSvalues': list(PROJ.objects.values('id', 'project_id', 'Company', 'Revision', 'SSI' ))
}
)

шаблон

<div class="col-md-9">
<select class="form-select" name="proj_number" id="proj_number" onchange="PROJ_ID(this)">
{% for PROJ in PROJS %}
<option value="{{ PROJ.id }}">{{ PROJ.project_id }}</option>
{% endfor %}
</select>
</div>
{{ PROJSvalues|json_script:"proj-json" }}    
<script>
let jsondata = JSON.parse(document.getElementById('proj-json').textContent);
//console.log(jsondata);
function PROJ_ID() {
var proj_number = parseFloat(document.getElementById("proj_number").value);
//alert(proj_number);
const result = jsondata.find(({ id }) => id === proj_number);
//console.log(result);
document.getElementById('Revision').value = result['Revision'];
document.getElementById('Company').value = result['Company'];
document.getElementById('SSI').value = result['SSI'];
}
</script>
<label class="col-md-3 col-form-label">Revision:</label>
<div class="col-md-9">
<input type="text" class="form-control" name="Revision" placeholder="Revision" id="Revision">
</div>
<label class="col-md-3 col-form-label">Company:</label>
<div class="col-md-9">
<input type="text" class="form-control" name="Company" placeholder="Company" id="Company">
</div>

, если есть более простой способ, пожалуйста, расскажите о нем, заранее спасибо!

Вернуться на верх