以模型数据作为初始数据,根据选择填写django表格

以模型数据作为初始数据,根据选择填写django表格,django,django-models,django-forms,django-views,Django,Django Models,Django Forms,Django Views,需要关于将模型类字段作为初始数据添加到表单数据的帮助 models.py forms.py 我已经创建了Source1对象并添加了https://stackoverflow.com 源URL字段中的值 下面是它的样子: 一旦我从forms.ModelChoiceField中选择Source1,我希望它根据用户选择的对象显示source\u URL的source\u URL字段数据 听起来需要一个JavaScript解决方案 在视图上下文中设置名为“source\u url”的上下文变量后,可以加

需要关于将模型类字段作为初始数据添加到表单数据的帮助

models.py

forms.py

我已经创建了Source1对象并添加了https://stackoverflow.com 源URL字段中的值

下面是它的样子:

一旦我从forms.ModelChoiceField中选择Source1,我希望它根据用户选择的对象显示source\u URL的source\u URL字段数据


听起来需要一个JavaScript解决方案

在视图上下文中设置名为“source\u url”的上下文变量后,可以加载模板中的所有source\u URL:

你的看法:

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>
或者,您可以创建另一个视图,通过ajax调用搜索源URL:

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() {
    $('#source_form_urls_id').val(source_urls[$(this).val()]);
});
$('#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);
        }
    });
});

这两个例子都需要一些改进才能正常工作,但它们提供了总体思路。

听起来需要一个JavaScript解决方案

在视图上下文中设置名为“source\u url”的上下文变量后,可以加载模板中的所有source\u URL:

你的看法:

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>
或者,您可以创建另一个视图,通过ajax调用搜索源URL:

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() {
    $('#source_form_urls_id').val(source_urls[$(this).val()]);
});
$('#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);
        }
    });
});

这两个示例都需要一些改进才能正确工作,但它们提供了一般思路。

使用ajax是一个很好的技巧,将了解第一个方法上下文,从而将解决方案标记为已解决。感谢您的写作:使用ajax是一个很好的技巧,它将学习第一个方法上下文,从而将解决方案标记为已解决。感谢您的写作: