在Djang中删除时“TypeError:”int“对象不可调用”

2024-04-25 00:25:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我被难住了。。。你知道吗

当视图试图删除实例时,我得到“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

既然已经清楚了错误的来源,那么值得一提的是,我已经精简了发布的代码。你知道吗


Tags: inpyformdefaultifmodelsresponserequest
1条回答
网友
1楼 · 发布于 2024-04-25 00:25:10

@AgostBiro为我指出了正确的方向,我已经指出了问题的原因,因为我将其中一个字段命名为delete,它重写了delete()方法。重命名为deleted并迁移模型修复了问题。你知道吗

相关问题 更多 >