当前位置: 首页 > 知识库问答 >
问题:

Django-TypeError-save()得到一个意外的关键字参数“force\u insert”

皮景龙
2023-03-14

我是Django的新手,我无法找出这个错误。请帮忙。它给TypeError-保存()一个意外的关键字参数force_insert。我测试了下面的代码,他们能够保存新用户注册,但现在它不会再保存了...

这里是views.py的一部分,我认为有一些问题:

    from django.shortcuts import render, redirect
    from django.contrib.auth.forms import UserCreationForm
    from django.contrib import messages
    from django.contrib.auth.decorators import login_required
    from . forms import UserRegisterForm, UserUpdateForm, ProfileUpdateForm

    def register(request):
        if request.method == 'POST':
            form = UserRegisterForm(request.POST)
            if form.is_valid():
            username = form.cleaned_data.get('username')
            form.save(force_insert=False)
            messages.success(request, f'Thank you {username}! Your account has been created!')
            return redirect('login')
    else:
        form = UserRegisterForm()

    return render(request, 'users/register.html', {'form':form})

还有models.py

from django.db import models
from django.contrib.auth.models import User
from PIL import Image

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='profile_pics/default.jpg', upload_to='profile_pics')

    def __str__(self):
        return (self.user)

    def save(self):
        super().save()

        img = Image.open(self.image.path)

        if img.height > 300 or img.width > 300:
            output_size = (300,300)
            img.thumbnail(output_size)
            img.save(self.image.path)'

共有3个答案

萧奇
2023-03-14

我也有同样的问题。

这将解决它:

在用户/模型中编辑超级方法。py文件:

def save(self, *args, **kwargs):
    super.save(*args, **kwargs)
贺跃
2023-03-14

您已重写save方法,但尚未保留其签名。您需要接受与原始方法相同的参数,并在调用super时传入它们。

def save(self, *args, **kwargs):
    super().save((*args, **kwargs)
    ...
施华奥
2023-03-14

在Django中重写模型的save方法时,还应将*args**kwargs传递给重写的方法。此代码可以正常工作:

def save(self, *args, **kwargs):
    super(Profile, self).save(*args, **kwargs)

    img = Image.open(self.image.path)

    if img.height > 300 or img.width > 300:
        output_size = (300,300)
        img.thumbnail(output_size)
        img.save(self.image.path)'
 类似资料:
  • 问题内容: 我是Django的新手,我无法弄清楚这个错误。请帮忙。它提供了TypeError- save()得到了意外的关键字参数’force_insert’。我测试了下面的代码,他们能够保存新的用户注册,但现在将不再保存… 这是我认为有问题的views.py的一部分: 和models.py 问题答案: 当您在Django中覆盖模型的save方法时,还应该传递和覆盖方法。该代码可能工作正常:

  • 我是一种新的熊猫,我正在使用和来枢转我的数据帧,我得到了这个错误: TypeError: Swplevel()得到了一个意外的关键字参数axis 我已经检查了熊猫文件,功能以轴为参数,请问我做错了什么!非常感谢。

  • 对于范围(1,5)内的i: 范围(1,5)内的i在()1中的TypeError回溯(最近一次调用): ---- TypeError: trat()得到了一个意外的关键字参数'runs' 我在Jupyter笔记本中执行代码时遇到这个错误,我还导入了这些库 请帮忙。谢谢你。

  • 我有这样的json: 我正试图使用以下代码将其转换为熊猫数据帧: 在添加之前,我得到了错误值错误:如果使用所有标量值,你必须传递一个索引所以我补充说,基于从变量中的值构建熊猫数据帧的答案给出值错误:如果使用所有标量值,必须传递一个索引" 现在我得到了这个错误: from_dict()得到一个意外的关键字参数'index' TL;博士 忘记上面的代码吧。将上述json中的每个“属性”结构添加到数据帧

  • 我不知道错误发生在哪里,我还尝试了python 3.6。3.此错误也会发生。请帮忙。 我正在训练模特儿。py文件,但我得到以下错误。 它显示了以下内容: 警告:tensorflow:强制所有评估验证的历元数为1。警告:tensorflow:预计评估次数为1,但在列车输入配置中遇到=0。将覆盖为1。警告:tensorflow:使用临时文件夹作为模型目录:C:\Users\wyh\AppData\Lo

  • 如何更改seaborn中lmplot的图形大小? 这是我当前的代码,但显然不接受。 谢谢