我有一个Django网站,希望以其他语言显示。直到今天早上,一切正常。这是交易。我去说关于我们页面,它是英文的。在它的下面是“更改语言”按钮,当我按下它时,一切“神奇地”都会按照我想要的方式翻译成保加利亚语。另一方面,我有一个JS菜单,用户可以从中浏览产品。我单击“ T恤”,然后在先前按下的子菜单下面打开,其中包含不同的类别-男性,女性,儿童。该链接将我引导至一个页面,该页面列出了我所要求的确切衣服。但是...当我尝试更改语言时,什么也没发生。我转到“简介”页面,从那里更改语言,返回到衣服目录,并且语言已更改...

我不会粘贴一些代码。

这是我的更改按钮代码:

function changeLanguage() {
    if (getCookie('language') == 'EN') {
        setCookie("language", 'BG');
    } else {
        setCookie("language", 'EN');
    }
    window.location.reload();
}


我的关于我们页面:

@base
def aboutUs(request):
    return """<b>%s</b>""" % getTranslation("About Us Text", request.COOKIES['language'])


@base方法:

def base(myfunc):
    def inner_func(*args, **kwargs):
        try:
            args[0].COOKIES['language']
        except:
            args[0].COOKIES['language'] = 'BG'

        # raise Exception(request)

        # if I am in the AboutUs page
        # and I click on the language change button
        # the cookie value in the request object changes
        # if however I am in the displayClothes page
        # the value stays the same

        # some code I removed

        contents = myfunc(*args, **kwargs)

        return render_to_response('index.html', {'title': title, 'categoriesByCollection': categoriesByCollection.iteritems(), 'keys': enumerate(keys), 'values': enumerate(values), 'contents': contents, 'btnHome':getTranslation("Home Button", args[0].COOKIES['language']), 'btnProducts':getTranslation("Products Button", args[0].COOKIES['language']), 'btnOrders':getTranslation("Orders Button", args[0].COOKIES['language']), 'btnAboutUs':getTranslation("About Us Button", args[0].COOKIES['language']), 'btnContacts':getTranslation("Contact Us Button", args[0].COOKIES['language']), 'btnChangeLanguage':getTranslation("Button Change Language", args[0].COOKIES['language'])})
    return inner_func


和目录页面:

@base
def displayClothes(request, category, collection, page):
    clothesToDisplay = getClothesFromCollectionAndCategory(request, category, collection)

    contents = ""

    # some code I removed

    return """%s""" % (contents)


让我解释一下,您不必为我发布的大量代码感到震惊。您不必了解它,甚至不必查看所有内容。我发布它只是为了以防万一,因为我真的不明白该错误的起源。

现在这就是我缩小问题的范围。每当我想知道我的请求对象中包含什么内容时,我都会使用“ raise Exception(request)”进行调试。当我将其放置在aboutUs方法中时,每次按下语言按钮时,语言cookie值都会更改。但是,当我处于displayClothes方法中时,不是这样。那里的语言保持不变。我也尝试将异常行放在@base方法的开头。事实证明,情况完全一样。当我在关于我们页面中并单击按钮时,请求对象中的语言会更改,但是当我在目录页面中按按钮时,语言保持不变。

这就是我所能找到的全部,而且我对Django如何区分我的页面以及以哪种方式一无所知。

附言我认为JavaScript可以完美运行,我已经通过多种方式对其进行了测试。

谢谢,我希望你们中的一些人会读这篇巨大的文章,不要犹豫,索取更多的代码摘录。

最佳答案

太多的代码无法阅读。您确实需要努力将其缩减。

如果您确定错误在displayClothes中某处,那么我将注释掉某些位,直到不再收到该错误为止。但是在该视图中似乎没有任何可以改变Cookie的东西,所以我不知道您会获得多大的成功。另外,请确保您要检查的是AboutUs请求中的实际内容,而不只是您所想的。

附带说明:您正在将HTML直接编码到视图中。我很确定您真的不想这样做-Django有模板是有原因的。

关于javascript - 重新加载当前页面时,Django不刷新我的请求对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2938045/

10-11 12:42
查看更多