Py学习  »  Nafees Anwar  »  全部回复
回复总数  3
5 年前
回复了 Nafees Anwar 创建的主题 » Django:如何在模板中使用修改后的queryset而不保存修改

queryset不是数据持有者,它们只是惰性引用,在运行时进行计算。代码的问题是您正在修改queryset中的实例(这也是您应该使用 in 类似于操作员)。

for answer in all_answers:
    answer.text = modify_text(answer.text, request)

真正的问题是你打电话来 all all_answers.all 它返回一个新的queryset,并且没有您所做的更改,因此您应该在模板中执行

{% for answer in all_answers %}
   {{ answer.text}}
{% endfor %}
6 年前
回复了 Nafees Anwar 创建的主题 » 编辑django登录表单

我已经在我的一个项目中使用了这个包,很多复杂的场景都可以使用它。有很多方法可以自定义此视图。正如您所提到的,您需要登录表单中的额外字段,如果您只需要登录表单中的额外字段,可以使用以下方法。

步骤1创建自己的带有额外字段的登录表单

您可以创建自己的登录表单、从django的内置表单继承或从它们用于登录的表单继承。在其中添加额外字段。

class YourLoginForm(AuthenticationForm):
    pass
    # your extra fields and functionality here 

步骤2从包的登录视图继承并使用表单

您必须创建从包的内置登录视图继承的登录视图,并将您的登录表单与其他类似的表单一起添加

from TWO_FACTOR_AUTU import LoginView

class YourLoginView(LoginView):
    form_list = (
        ('auth', YourLoginForm),
        ('token', AuthenticationTokenForm),
        ('backup', BackupTokenForm),
    )

将此视图与适当的路由一起用于处理身份验证。 希望这有帮助

6 年前
回复了 Nafees Anwar 创建的主题 » 未找到python模块,相对文件夹。不明白

问题是测试目录不在您的python路径中。而且这不会是默认的。您正在尝试从该目录导入,使用

from context import Session

但失败了。正如从基本目录执行一样,可以使用

from tests.context import Session

或者像这样使用相对导入。

from .context import Session