Django:将列表和列表结果作为两个单独的变量传递给模板的问题

ffvjumwh  于 2023-02-25  发布在  Go
关注(0)|答案(1)|浏览(156)

我试图使简历网站有一个数独生成器和求解器。生成器和求解器是两个独立的函数在www.example.com文件导入到www.example.com文件。我的数独存储在一个列表的9个列表的9个整数。 functions.py file imported into the views.py file. My sudokus are stored in a list of 9 lists of 9 ints.
来自www.example.comviews.py:

from functions import *

def sudoku(request):
    grid = make_sudoku() # generates unsolved sudoku list
    solved = solve(grid) # generates solved list of unsolved list fed in.
    count = [i for i in range(9)]
    context = {
        'grid': grid,
        'solved': solved,
        'count': count
        }
    return render(request, 'main/sudoku.html', context)

如果我打印grid,我会得到一个未解的数独列表。2如果我打印solved,我会得到一个已经解了的列表。3在那之前一切都很顺利,但是如果我进入sudoku.html并输入{{grid}},我会得到一个已解的数独列表。
就像树对伐木工人说的那样,我被绊倒了!我完全不明白为什么会发生这种情况,因为在sudoku.html中,除了将它们传递给sudoku.js之外,我从来没有引用过网格或解决过问题,而sudoku.js实际上是在制作这个谜题。

46scxncf

46scxncf1#

你的solve()函数可能不仅返回解算的grid而且它也修改现有的网格并就地解算它,它不是复制而是在同一个网格上解算它.阅读更多关于通过值传递和通过引用传递(这里grid是通过引用传递的)
https://flexiple.com/python/python-pass-by-reference/
此外,您还可以替换

count = [i for i in range(9)]

作者

count = list(range(9))

相关问题