【发布时间】:2021-03-21 14:38:09
【问题描述】:
我正在使用 Django 通用类视图 (CreateView) 和 Django ModelForms。但由于某种原因,表单渲染似乎卡住了。
这是我的意见.py
class NewExternalWorkOrder(CreateView):
model = ExternalWorkOrder
template_name = 'new_external_work_order.html'
form_class = ExternalWorkOrderForm
我的 ExternalWorkOrder 模型:
class ExternalWorkOrder(models.Model):
asset = models.ForeignKey(Asset, null=True, blank=True, on_delete=models.DO_NOTHING)
inventory_item = models.ForeignKey(Item, null=True, blank=True, on_delete=models.DO_NOTHING)
inventory_item_quantity = models.PositiveIntegerField(validators=[MinValueValidator(1)], null=True, blank=True)
number = models.CharField(max_length=50, null=True)
date_created = models.DateTimeField(default=timezone.now)
nature_of_problem = models.TextField()
mileage_hours = models.PositiveIntegerField(null=True, blank=True)
#...more fields...
还有我的表单类
class ExternalWorkOrderForm(forms.ModelForm):
def __init__(self, * args, ** kwargs):
super(ExternalWorkOrderForm, self).__init__(*args, **kwargs)
class Meta:
model = ExternalWorkOrder
fields = ['asset', 'inventory_item', 'inventory_item_quantity',
'nature_of_problem', 'mileage_hours']
widgets = {
'asset': forms.Select(attrs={'class': 'browser-default'}),
}
这一切在几天前还有效,但突然停止工作。该页面现在永远加载,gunicorn worker 几乎总是超时(我将超时时间增加到超过 10 分钟)。有时它最终会呈现。
我最初以为是表单实例化,但经过几次测试后,实例化似乎完成了,但表单不会呈现。
我已经更新了我的views.py 来覆盖get 方法
def get(self, request, *args, **kwargs):
form = self.form_class(initial=self.initial)
context = {'form': form}
print("About to render with form...")
return render(request, self.template_name, {'form': form})
如果我去掉上下文中的表单,页面就会成功呈现。
有人知道可能出了什么问题吗?
【问题讨论】:
标签: python django django-forms