试图request.POST数据绑定到窗体时,我得到的约20 -30秒无法解释延迟:延迟绑定request.POST数据时,形成在Django
CompanyFormset = modelformset_factory(Company, form=EditCompanyForm, extra=0)
if request.method == 'POST':
formset = CompanyFormset(request.POST)
if formset.is_valid():
formset.save()
它只是发生在一个服务器,无论我使用的是开发服务器还是mod_wsgi。当在我的开发计算机上尝试时,一切工作都很快。如果我尝试通过手动赋值来保存模型,它应该是很快的。
延迟只发生在这条线:
formset = CompanyFormset(request.POST)
..和我没有更多的想法是什么导致它或在何处寻找问题的原因。
有什么建议该怎么办?
这里是模型过于:
class Company(models.Model):
name = models.CharField(_('name'),blank=True, max_length=200)
type_of_corporation = models.CharField(_('type of organization'),blank=True, max_length=100)
tax_number = models.CharField(_('tax number'),blank=True, max_length=100)
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)
logo = models.FileField(_('logo'),upload_to='bex/logos', blank=True, null=True)
description = models.TextField(_('description'),blank=True)
street = models.CharField(_('street'),blank=True, max_length=100)
city = models.CharField(_('city'),blank=True, max_length=100)
zip = models.CharField(_('zip'),blank=True, max_length=50)
region = models.CharField(_('region'),blank=True, max_length=100)
COUNTRIES = (
('Croatia', 'Croatia'),
('Slovenia', 'Slovenia'),
)
country = models.CharField(_('country'),max_length=20, choices=COUNTRIES)
telephone = models.CharField(_('telephone'),blank=True, max_length=20)
fax = models.CharField(_('fax'),blank=True, max_length=20)
email = models.EmailField(_('email'),blank=True)
website = models.URLField(_('website'),null=True, blank=True, verify_exists=False)
representing_person = models.CharField(_('representing person'), blank=True, max_length=100)
owner = models.ForeignKey(User, blank=True, null=True, verbose_name=_('owner'), related_name='company_owner')
owner_approved = models.BooleanField(blank=True)
company_approved = models.BooleanField(default=True)
business_category = models.ForeignKey(BusinessCategory, blank=True, null=True, verbose_name=_('business category'))
subscription_date = models.DateTimeField(_('subscription date'),blank=True, null=True)
score = models.IntegerField(null=True, blank=True)
votes = models.IntegerField(null=True, blank=True)
""" company data needs to have ratings, comments, category and business tags """
class Admin:
list_display = ('',)
search_fields = ('',)
save_as = True
class Meta:
verbose_name = _('Company')
verbose_name_plural = _('Companies')
def rating_allowed(self):
if not self.subscription_date:
try:
user = User.objects.get(id=self.owner.id)
if (datetime.today() - user.date_joined).days < 30:
rating_allowed = True
except:
rating_allowed = False
else:
if (datetime.today() - self.subscription_date).days < 365:
rating_allowed = True
else:
rating_allowed = False
self.rating_allowed = rating_allowed
return self.rating_allowed
def get_absolute_url(self):
return "/companies/%i/" % self.id
def __unicode__(self):
return self.name
发布公司模型也请 – 2011-04-17 10:16:56
在这里,添加到上面的帖子。 – tmilovan 2011-04-17 11:23:45