为什么我不能在应用if-else条件后更改变量的值?

时间:2015-02-18 11:26:55

标签: python django

我已经初始化了一个变量" stock"如果存在特定条件,我想更改其值,但是当我在python文件中的函数中执行此操作时,它返回相同的初始值" 0"。我已经在python脚本中多次这样做了,但是我无法在这个Django应用程序的脚本中应用。因此,如果我不能以这种方式做到这一点,那么还有什么方法可以做到这一点。 该文件的代码如下:

# views.py file
def data(request, stocks_id, choice_id):
    stocks = 0
    selected_stock = Stocks.objects.get(id=stocks_id)
    selected_symbol = selected_stock.symbol
    strng = ""
    symbol = selected_symbol + strng
    if choice_id == 1:
        stocks = Get_Quote(symbol)
    elif choice_id == 2:
        stocks = Get_percent_change(symbol)
    return render(request, 'stocks/data.html', {"stocks": stocks})

2 个答案:

答案 0 :(得分:2)

视图的参数始终是字符串。因此,您必须在if条件中使用字符串比较:

if choice_id == "1":
    stocks = Get_Quote(symbol)
elif choice_id == "2":
    stocks = Get_percent_change(symbol)

答案 1 :(得分:1)

你的条件永远不会真实,所以它永远不会改变股票。原因是stock_id与url一样,是一个字符串而不是一个数字。所以你应该说"1"而不是1

尝试这样的事情:

def data(request, stocks_id, choice_id):
    stocks = 0
    selected_stock = Stocks.objects.get(id=stocks_id)
    selected_symbol = selected_stock.symbol
    strng = ""
    symbol = selected_symbol + strng
    if choice_id == "1":
        stocks = Get_Quote(symbol)
    elif choice_id == "2":
        stocks = Get_percent_change(symbol)
    return render(request, 'stocks/data.html', {"stocks": stocks})