通过URL将参数传递给Django视图

3

我遇到了一些通过URL向视图传递值的困难。

到目前为止,我的视图已经成功运行且没有任何问题。

view.py(绘制图表):

def draw(request)
    ....
    ....
    return HttpResponse (buffer.getvalue(), content_type="Image/png")

但是我需要我的视图从用户那里输入数据,因此我编辑了它并添加了一个额外的参数:

def draw(request, loan_amount)
     loanAmount = loan_amount
     .....

用户输入通过表单传递到另一个视图:
def search_member(request):
     loanAmount = request.GET.get('desired_loan')
     return render(request, 'blog/search_member.html', {'loanAmount':loanAmount)

在我的模板中,我将用户输入插入到绘制参数中:

<img src="http://test.com/graph/{{ loanAmount }}">

我本来希望根据用户输入绘制一张图片,但是我没有得到任何图片。

如果我删除参数,图片就可以正常工作。我认为在参数的设置上出了问题,最可能是在模板或网址中:

url(r'^graph/(?P<desired_loan>\d+)/$', views.draw, name='draw'),

我已经测试了视图、表单和其他所有内容,它们都可以正常工作。我该如何缩小问题范围以查找解决方案?任何指导/帮助都将不胜感激,谢谢。
<form method="GET" action="/search_member/" class="navbar-form pull-left">

            <input type="number" step = "any" id="searchBox" class="input-medium search-query" name="desired_loan" placeholder="Desired Loan"><br>
            <input type="number" step = "any" id="searchBox" class="input-medium search-query" name="repayment_time" placeholder="Payment Time"><br>

            <input type="submit" class="btn" value="Draw Graph" >

        </form><br>
        <img src="http://test.com/graph/{{ loanAmount }}">

截图:

图片无法显示


1
图片路径不正确 - 请查看静态加载。 - Nabeel Ahmed
@NabeelAhmed 你好,为什么我能加载<img src =“http://test.com/graph/”>,但不能加载<img src =“http://test.com/graph/{{ loan_amount }}”>? 同时我会了解加载静态内容的事。 - almost a beginner
你在浏览器中看到的imgurl是什么? - Windsooon
@Aison http://test.com/graph/10000 (如果我输入 10000) - almost a beginner
你在设置中设置了 STATIC_URL 吗? - Windsooon
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') 静态 URL = '/static/' 静态根目录 = os.path.join(BASE_DIR,'static') - almost a beginner
1个回答

3

关于 URL 的格式

url(r'^graph/(?P<desired_loan>\d+)/$', views.draw, name='draw'),

将您的视图更改为:

def draw(request, *args, **kwargs):
 loanAmount = kwargs['desired_loan']
 .....

然后在模板中进行更改:

<img src="{% url 'graph' loanAmount %}">

如果您使用 {% url 'graph' loanAmount %},会出现什么错误?并将 def draw(request, loan_amount) 更改为 def draw(request, *args, **kwargs) - Anna
在你们的最新更新中,我遇到了2016-08-22 12:29:43,515 :Not Found: /static/path/to/user image/10000/img.png的问题。我已经进行了必要的更改。请问你们能否在更新之前修改一下代码。 - almost a beginner
我遇到了以下错误,请查看错误日志:ymin = (-desiredLoan - (repaymentTime * 25)) TypeError: bad operand type for unary -: 'str' - almost a beginner
loanAmount = int(kwargs['desired_loan']) - Anna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接