小编Tha*_*ian的帖子

Django形成干净的数据

我正在尝试使用表单中的干净方法来清理数据,但是当我这样做时,我不会在我的表单中看到验证错误,它是来自django的唯一错误页面.

我有编辑和创建表单,我想在一个地方清洁,但不能复制到2个视图.

你能给我一些建议吗?我阅读了关于表格中干净和有效的文档,但我仍然存在问题.我举一个例子:

Views.py

@user_passes_test(lambda u: u.is_staff, login_url='/account/login/')
def client_create(request):

    dict = {}

    if request.method == 'POST':
        form_user = ClientUserCreateForm(request.POST, prefix="user")
        form_client = ClientForm(request.POST, prefix="client")
        if form_user.is_valid() and form_client.is_valid():
            obj_user = form_user.save(commit=False)
            obj_client = form_client.save(commit=False)

            obj_user.username = form_client.cleaned_data['vat']
            obj_user.set_password(form_client.cleaned_data['vat'])
            obj_user.is_active = 1
            obj_user.save()

            obj_client.id_id = obj_user.id
            obj_client.save()

                # Redirect to Client profile
                return HttpResponseRedirect(reverse('client_profile', args={obj_client.id_id}))

        # If forms have error show view again with errors
        dict['form_user'] = form_user
        dict['form_client'] = form_client
        return render(request, 'panel/client/form.html', dict)
    else:
        dict['form_user'] = ClientUserCreateForm(prefix="user")
        dict['form_client'] …
Run Code Online (Sandbox Code Playgroud)

django django-forms

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

表单错误 - __init __()得到了一个意外的关键字参数'prefix'

我在一个中有两个表单,我添加了前缀以在视图中分隔它.但是我收到错误:__ init __()得到了一个意外的关键字参数'prefix'

我在堆栈上阅读有关前缀和其他问题的文档,但这对我没有帮助.

我的view.py:

@user_passes_test(lambda u: u.is_staff, login_url='/account/login/')
def client_create(request):
    dict = {}
    dict['title'] = 'New client'

    if request.method == 'POST':
        form_user = ClientUserCreateForm(request.POST, prefix="test1")
        form_client = ClientCreateForm(request.POST, prefix="test2")
        return HttpResponse(request.POST['first_name'])
        # if form_user.is_valid() and form_client.is_valid():
        #     print(request.POST)
    else:
        dict['form_user'] = ClientUserCreateForm(prefix="test1")
        dict['form_client'] = ClientCreateForm(prefix="test2")
        return render(request, 'panel/client/create.html', dict)
Run Code Online (Sandbox Code Playgroud)

我有两个表单,他们有init,当我从表单中删除它然后前缀工作是正确的.

我的forms.py

class ClientUserCreateForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('first_name', 'last_name', 'email')

    def __init__(self):
        super(ClientUserCreateForm, self).__init__()
        self.fields['first_name'].widget.attrs.update({
            'type': 'text',
            'class': 'form-control',
            'id': 'input-text',
        })
        self.fields['last_name'].widget.attrs.update({
            'type': 'text', …
Run Code Online (Sandbox Code Playgroud)

forms django django-models django-forms

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

Django模板使用jquery脚本和{{}}

我想使用http://filer.grandesign.md/#demos但查询中的这个脚本使用{{}}的语法,并且django无法理解这一点.给django信息留下这几行代码并且不尝试将变量放在那里是可行的吗?

{{fi-image}},{{fi-image}}等

项目页面的示例代码:

$('#filer_input').filer({
    changeInput: '<div class="jFiler-input-dragDrop"><div class="jFiler-input-inner"><div class="jFiler-input-icon"><i class="icon-jfi-folder"></i></div><div class="jFiler-input-text"><h3>Click on this box</h3> <span style="display:inline-block; margin: 15px 0">or</span></div><a class="jFiler-input-choose-btn blue">Browse Files</a></div></div>',
    showThumbs: true,
    theme: "dragdropbox",
    templates: {
        box: '<ul class="jFiler-items-list jFiler-items-grid"></ul>',
        item: '<li class="jFiler-item">\
                    <div class="jFiler-item-container">\
                        <div class="jFiler-item-inner">\
                            <div class="jFiler-item-thumb">\
                                <div class="jFiler-item-status"></div>\
                                <div class="jFiler-item-info">\
                                    <span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name | limitTo: 25}}</b></span>\
                                    <span class="jFiler-item-others">{{fi-size2}}</span>\
                                </div>\
                                {{fi-image}}\
                            </div>\
                            <div class="jFiler-item-assets jFiler-row">\
                                <ul class="list-inline pull-left"></ul>\
                                <ul class="list-inline pull-right">\
                                    <li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\
                                </ul>\
                            </div>\
                        </div>\
                    </div>\
                </li>',
        itemAppend: '<li class="jFiler-item">\
                        <div class="jFiler-item-container">\ …
Run Code Online (Sandbox Code Playgroud)

python django jquery django-templates

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

Django中间件'module'对象不可调用

我有中间件的问题我发现了很多关于它的问题,但在我的情况下没有任何帮助.

我使用中间件来获取current_user以在我的模型中使用以在save方法中保存修改后的用户,而无需在视图中写入此内容.

这是原始帖子,代码如下:

中间件

from threading import local

_user = local()


class CurrentUserMiddleware(object):
    def process_request(self, request):
        _user.value = request.user


def get_current_user():
    return _user.value
Run Code Online (Sandbox Code Playgroud)

这段代码有问题,因为我收到的错误如下:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Python35-32\Lib\wsgiref\handlers.py", line 137, in run
    self.result = application(self.environ, self.start_response)
  File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\contrib\staticfiles\handlers.py", line 63, in __call__
    return self.application(environ, start_response)
  File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\wsgi.py", line 158, in __call__
    self.load_middleware()
  File "C:\Users\loc\dJangoEnvironment\lib\site-packages\django\core\handlers\base.py", line 53, in load_middleware
    mw_instance = mw_class()
TypeError: 'module' object is not callable
[20/Jul/2016 10:51:44] "GET /panel/ HTTP/1.1" 500 …
Run Code Online (Sandbox Code Playgroud)

python django django-middleware

0
推荐指数
1
解决办法
2451
查看次数