限制Ajax XML应用程序的Django查询结果

Limiting Django query results for ajax XML app

这里是我的模型: P / < >

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Members(models.Model):
    firstname         = models.CharField(max_length=30)
    lastname          = models.CharField(max_length=30)
    gender            = models.CharField(max_length=1)
    email             = models.EmailField()
    password          = models.CharField(max_length=30)
    country_code      = models.CharField(max_length=4, choices=COUNTRY_CHOICES)
    zip               = models.CharField(max_length=10)
    will_share        = models.IntegerField()
    will_chat         = models.IntegerField()
    priv_level        = models.IntegerField()
    email_format      = models.CharField(max_length=4, choices=EMAIL_CHOICES)
    created           = models.DateTimeField(auto_now_add=True)
    modified          = models.DateTimeField(auto_now=True)
    last_login        = models.DateTimeField(auto_now=True)
    active            = models.BooleanField()

当我做的query年代follows: P / < >

1
Members.objects.all()

我该怎么returned限制的领域。我只想firstname,lastname和最后的_ login如此effectively creating的query像: P / < >

1
SELECT firstname, lastname, last_login FROM members

有很多会员,我需要发送很多XML数据 browser和不想要的所有领域returned比它将从散装的数据太多。我检查所有的文档和看不到的消息选项的使用。 P / < >

也有一个简单的方式为我去把我的领域中的XML数据集有限公司为返回到browser到在使用Ajax吗? P / < >

谢谢 P / < >

丰富的 P / < >


你可以选择本身的限制,或在您的QuerySet .only(fields).defer(fields)集。这将返回一个执行个体选择模型填充丢失的机场如果你访问他们。

XML serialization不能回答的一部分,虽然。


  • QuerySet.values()会让你指定你想要的战场,然后想不再返回查询模型实例。

  • serialization。但当然,如果你使用以前的方法,那么你可能不可以序列化它同样的方式。而不是考虑使用JSON。


  • 最后我找到了答案,在http://docs.djangoproject.com /恩/ dev /主题/ serialization /

    它可能返回到机场的实际限制在连载!

    从进出口django.core序列化程序数据= serializers.serialize("XML",somemodel.objects.all(),机场(="名称","大小")