给出一个类:
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=20)
Run Code Online (Sandbox Code Playgroud)
是否有可能,如果有的话,如何使用基于动态参数进行过滤的QuerySet?例如:
# Instead of:
Person.objects.filter(name__startswith='B')
# ... and:
Person.objects.filter(name__endswith='B')
# ... is there some way, given:
filter_by = '{0}__{1}'.format('name', 'startswith')
filter_value = 'B'
# ... that you can run the equivalent of this?
Person.objects.filter(filter_by=filter_value)
# ... which will throw an exception, since `filter_by` is not
# an attribute of `Person`.
Run Code Online (Sandbox Code Playgroud) 如果我有一个功能:
def add(**kwargs):
for key, value in kwargs.iteritems():
print "%s = %s" % (key, value)
Run Code Online (Sandbox Code Playgroud)
如何动态地将keyworded参数添加到此函数中?我正在使用Python构建HTML生成器,因此我需要能够根据用户想要启用的属性添加keyworded参数.
例如,如果用户想要在表单中使用name属性,他们应该能够在存储的关键字参数列表中声明它(不知道如何执行此操作).此存储的关键字参数列表还应包含变量的值.例如,如果用户希望属性名称为"Hello",它应该看起来像并传递给函数,如下所示:
name = "Hello" (example)
Run Code Online (Sandbox Code Playgroud)
如果你们需要更多信息,请告诉我.谢谢!