开发者

How to increase performance for forms?

I have form:

class AdmItemForm(forms.ModelForm):
    id = forms.ModelChoiceField(queryset=Article.objects.all(), widget=forms.HiddenInput())
    mainimage = forms.ImageField(widget=AdmImageWidget(), required=False)
    tags = TagField(required=False)
    .....

class Meta:
    model = Article
    fields = ('id', 'category', 'date', ....)

but... In the articles table is 10 000 records... Form isn't opened, browser loads data forever.

What happens? Is the ModelChoiceField retrie开发者_如何转开发ves all data from a table?

How to fix it?


If you've got 10,000 records belonging to your Article model, then the queryset you're passing to ModelChoiceField will mean that it contains 10,000 items.

The simple solution is to restrict that queryset to contain only what you actually need: does the form need to contain every single article?

Long story short, see if you can restrict the query in any way, i.e.:

id = forms.ModelChoiceField(queryset=Article.objects.\
    filter(published=True))
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜