在django admin为什么django会添加?_changelist_filters到url?

时间:2016-11-25 12:12:40

标签: python django django-admin

为什么当我点击添加时django会在网址?_changelist_filters=user%3D5275上添加?我最初在change_list上的网址是?user=5275。 问题是应该在选择输入中选择用户,而不是。如果我在?user=5275中更改它正在运行。

如何让django“阅读”?_changelist_filters=user%3D5275或在?user=5275中更改

3 个答案:

答案 0 :(得分:4)

您可以在AdminForm中添加以下内容:

class UsersAdminForm(forms.ModelForm):
    @staticmethod
    def parse_filter_kwargs(**kwargs):
        if 'initial' in kwargs:
            if u'_changelist_filters' in kwargs['initial']:
                filters = kwargs['initial'][u'_changelist_filters']
                var, value = filters.split('=')
                if var == u'user':
                    return {'initial': {var: value}}
        return kwargs

    def __init__(self, *args, **kwargs):
        kwargs = self.parse_filter_kwargs(**kwargs)
        super(UsersAdminForm, self).__init__(*args, **kwargs)

答案 1 :(得分:1)

所有node { stage ("Collect User Input") { userInput = input( id: 'Input-username', message: 'Select username', ok: 'Continue', parameters: [choice(choices: 'user1\nuser2\nuser3', description: '', name: 'username'), password(defaultValue: '', description: 'Enter your private key passphrase ', name: 'password') ], submitterParameter: 'approver') println("User Input is: " + userInput) withCredentials(bindings: [sshUserPrivateKey(credentialsId: 'my-test-key', keyFileVariable: 'cred_keyfile', passphraseVariable: 'cred_passphrase', usernameVariable: 'cred_username' )]) { assert hudson.util.Secret.fromString(cred_passphrase) == userInput.password } } } 参数的解决方案

_changelist_filters

答案 2 :(得分:0)

from urllib.parse import parse_qsl

query_params = dict(parse_qsl(request.GET['_changelist_filters']))

print(query_params.get('user'))