小编Jai*_*Jai的帖子

检查 Django 模板中的请求获取参数

我正在检查 Django 模板中的 request.GET 参数。我粘贴其中的一部分:

<dd>
    <i class="fa fa-caret-right {% if request.GET.order %}{% ifequal request.GET.order 'price-asc' %}active{% endifequal %}{% endif %}"></i> <a href="{%url_add_replace request 'order' 'price-asc'%}">Order by price (Asc)</a>
</dd>
Run Code Online (Sandbox Code Playgroud)

如您所见,还有一个名为 add_replace 的自定义模板标记。它基本上是将指定的 GET 参数添加到 url。我不认为这有什么问题。

我的问题是关于别的。此代码在 DEBUG 级别生成日志。我正在努力摆脱它。日志如下。我认为必须有更适合检查 get 参数是否存在的方法。我可以在以下视图中执行此操作:

get_dict = request.GET.copy()

if get_dict.__contains__('order'):
    get_order = get_dict.__getitem__('order')
else:
    get_order = None
Run Code Online (Sandbox Code Playgroud)

但是当我在模板中检查它时,会出现以下日志:

DEBUG 2016-07-08 22:07:43,789 base 29571 140656761874496 Exception while resolving variable 'order' in template 'category.html'. Traceback (most recent call last):   File "/usr/local/lib/python3.5/site-packages/django/utils/datastructures.py", line 83, in __getitem__
    list_ …
Run Code Online (Sandbox Code Playgroud)

python django get request

3
推荐指数
1
解决办法
5129
查看次数

Django模型Formset预填充值问题

我正在尝试使用Django的模型表单集.当我加载表单模板时,我发现它已经填满了以前的值.是否有一个我应该停止的缓存机制,或者什么?

感谢您的帮助,这是我的代码:

models.py

class FooModel( models.Model ):

    a_field     = models.FloatField()
    b_field     = models.FloatField()

    def __unicode__( self ):
        return self.a_field
Run Code Online (Sandbox Code Playgroud)

forms.py

from django.forms.models import modelformset_factory

FooFormSet = modelformset_factory(FooModel)
Run Code Online (Sandbox Code Playgroud)

views.py

def foo_func(request):

    if request.method == 'POST':

        formset = FooFormSet(request.POST, request.FILES, prefix='foo_prefix' )

        if formset.is_valid():

            formset.save()

            return HttpResponseRedirect( '/true/' )

        else:

            return HttpResponseRedirect( '/false/' )

    else:

        formset = FooFormSet(prefix='foo_prefix')

    variables = RequestContext( request , { 'formset':formset , } )

    return render_to_response('footemplate.html' , variables )
Run Code Online (Sandbox Code Playgroud)

模板:

<form method="post" action=".">
{% csrf_token %}
    <input type="submit" …
Run Code Online (Sandbox Code Playgroud)

forms django django-forms

2
推荐指数
1
解决办法
1859
查看次数

标签 统计

django ×2

django-forms ×1

forms ×1

get ×1

python ×1

request ×1