Похоже, нужно решение JavaScript.
Вы можете загрузить все source_urls в шаблоне после установки контекстной переменной под названием 'source_urls' в контексте ваших представлений:
Ваше представление:
class YourViewName():
def get_context_data(self, **kwargs):
context_data = super().get_context_data(**kwargs)
context_data['source_urls'] = SourceCode.objects.values('id', 'source_urls')
return context_data
В шаблоне:
<script>
var source_urls = {
{% for su in source_urls %}
"{{ su.id }}": "{{ su.source_urls }}",
{% endfor %}
}
</script>
Затем добавьте что-нибудь в свой JavaScript:
$('#source_description_id').change(function() {
$('#source_form_urls_id').val(source_urls[$(this).val()]);
});
Или вы можете создать другое представление, которое ищет source_urls с помощью вызова ajax:
def source_url_searcher(request):
source_id = request.GET.get('id')
source_urls = SourceCode.objects.get(id=source_id).source_urls
return return JsonResponse({source_urls: source_urls})
И ваш JavaScript:
$('#source_description_id').change(function() {
$.ajax({
url: <the_ajax_url>,
data: {source_id: $(this).val()},
success: function(response) {
$('#source_form_urls_id').val(response.source_urls);
}
});
});
В любом примере для корректной работы потребуется некоторая полировка, но они дают общую идею.