存储在数据库中的Django模型过滤器

时间:2010-08-17 14:46:03

标签: django django-models

我正在使用feincms中的内容类型。我想创建一个可以在数据库中存储过滤器的内容类型。 粗略地看起来像这样:

from news.models import Entry
class NewsContent(models.Model):
    filter = models.CharField()
    exclude = models.CharField()
    offset = models.IntegerField()
    limit = models.IntegerField()
    #template = models.CharField()

    def get_entries(self):  
        return Entry.objects.filter(self.filter).exclude(self.exclude)[self.offset:self.limit_upper]

这可能吗?

现在这可能是一个好主意,也可能不是一个好主意,但问题是#2

1 个答案:

答案 0 :(得分:2)

您应该能够使用字典进行过滤和排除字段。

假设您要添加此过滤器:

...filter(one='asdf', two='xyz')

然后你会存储

"{'one':'asdf', 'two':'xyz'}"

作为NewsContentModel的过滤器字段中的字符串。

然后你可以这样做

def get_entries(self):
    return Entry.objects.filter(**eval(self.filter))

我认为应该有用......