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))
精彩评论