我被难住了。。。你知道吗
当视图试图删除实例时,我得到“TypeError:'int'object is not callable”
“在行上引发异常”表单.instance.delete()”
代码如下:
视图.py
def decorate_letter(request, ...):
....
if request.POST:
flair_formset = flair_formset_factory(request.POST or None)
for form in flair_formset.forms:
if form.has_changed():
if form.is_valid():
if form.cleaned_data['delete'] == 1:
form.instance.delete()
elif form not in flair_formset.deleted_forms:
form.save()
型号.py
class LetterFlair(models.Model):
letter = models.ForeignKey(Letter, on_delete=models.CASCADE)
flair = models.ForeignKey(Flair, on_delete=models.CASCADE, default=1)
x = models.DecimalField(decimal_places=2, max_digits=5, null=True, default=0)
y = models.DecimalField(decimal_places=2, max_digits=5, null=True, default=0)
r = models.DecimalField(decimal_places=2, max_digits=5, null=True, default=0)
placed = models.CharField(default='false', max_length=250)
delete = models.IntegerField(default=0)
表单.py
class LetterFlairModelForm(forms.ModelForm):
class Meta:
model = LetterFlair
fields = ['letter', 'flair', 'x', 'y', 'r', 'placed', 'delete']
堆栈跟踪
Traceback (most recent call last):
File ".../python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File ".../python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File ".../python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File ".../python3.6/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File ".../letters/views.py", line 140, in decorate_letter
form.instance.delete()
TypeError: 'int' object is not callable
是什么导致了异常?你知道吗
更新
我的问题加了一个堆栈跟踪。你知道吗
我真的不知道我的代码的哪一部分是导致这个问题,因此张贴了比我通常会。你知道吗
更新2
既然已经清楚了错误的来源,那么值得一提的是,我已经精简了发布的代码。你知道吗
@AgostBiro为我指出了正确的方向,我已经指出了问题的原因,因为我将其中一个字段命名为delete,它重写了delete()方法。重命名为deleted并迁移模型修复了问题。你知道吗
相关问题 更多 >
编程相关推荐