从数据库中选择一个值并在Django中返回另一个值

时间:2017-02-21 01:17:24

标签: python django django-views

在我的models.py中,我有两个CharFields设置,管理员可以登录并输入。一个具有友好名称,另一个附加了文件路径目录:

models.py

class IssuingCA (models.Model)
    ICA_name = models.CharField(max_length=200)
    filepath = models.CharField(max_length=200)
    def __str__(self):
        return self.ICA_name

在我的views.py中,我引用了这些字段,以便稍后在下拉<select>标记中使用它们:

views.py

from .models import IssuingCA
--snip--
"""This is the main page"""
def index(request):
    issuers = IssuingCA.objects.order_by('ICA_name')
    issuerOptions = {'issuers': issuers}
    return render(request, 'index.html', issuerOptions)
--snip--
"""This is the results page"""
def results(request):
    issuer = request.POST['selectedIssuer']
    return render(request, 'results.html', {'issuer': issuer}

在我的html代码中,我为我的模型中的每个ICA_name创建一个for循环。

的index.html

--snip--
<select name="selectedIssuers">
    {% for icas in issuers %}
    <option>{{ icas }}</option>
    {% endfor %}
    </select>

results.html

--snip--
This is your result:<br />
<textarea rows="10" cols="200">{{ issuer }}</textarea>
--snip--

现在,当我提交此数据并通过简单的帖子返回时,它会返回我按预期选择的ICA_name字段。当选择ICA_name时,如何获得结果以显示匹配的文件路径?我最终希望将这些数据(文件路径)向前传递给更多函数。

1 个答案:

答案 0 :(得分:1)

在您的选择框中,为您的选项传递一个值:

<option value="{{icas.filepath}}">{{ icas }}</option>