gpt4 book ai didi

python - Django int() 参数必须是字符串、类字节对象或数字,而不是 'QueryDict'

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:59 24 4
gpt4 key购买 nike

我有一个显示表单并保存相同表单的 View 。显示 View 没有问题,但保存时出现以下错误:

int() 参数必须是字符串、类字节对象或数字,而不是“QueryDict”

这是我的代码:

型号:

class Category(models.Model):
name = models.CharField(max_length=100, db_index=True, unique=True)
slug = models.SlugField(max_length=100, db_index=True, unique=True)
user = models.ForeignKey(User, related_name='categories')

class Meta:
ordering = ('name',)
verbose_name = 'category'
verbose_name_plural = 'categories'

def __str__(self):
return self.name

def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.name)
super(Category, self).save(*args, **kwargs)

def get_absolute_url(self):
return reverse('wallet:category_details', args=[self.id])

View :

@login_required
def category_create(request):
user = request.user
if request.method == 'POST':
category_create_form = CategoryCreateForm(request.POST)
if category_create_form.is_valid():
new_category = category_create_form.save(commit=False)
new_category.user = request.user
new_category.save()
return render(request, 'category/done.html')
else:
category_create_form = CategoryCreateForm()
return render(request, 'category/create.html', {'category_form': category_create_form})

表格:

class TransactionCreateForm(forms.ModelForm):
field_order = ['name', 'type', 'wallet', 'category', 'date', 'amount', 'notes', ]

class Meta:
model = Transaction
fields = ('name', 'type', 'wallet', 'category', 'date', 'amount', 'notes',)

def __init__(self, user, *args, **kwargs):
super(TransactionCreateForm, self).__init__(*args, **kwargs)
self.fields['wallet'] = forms.ChoiceField(
choices=[(wallet, str(wallet)) for wallet in Wallet.objects.filter(user=user)])

我该如何解决?

最佳答案

您的表单的 __init__ 方法指定了一个 user 参数,您在实例化它时没有提供该参数。创建您的表单:

category_create_form = CategoryCreateForm(user)

或者,在 POST 分支中,

category_create_form = CategoryCreateForm(user, request.POST)

好吧,假设实际类看起来像您发布的不同名称的表单类。基本上,看看您的表单需要哪些参数。

关于python - Django int() 参数必须是字符串、类字节对象或数字,而不是 'QueryDict',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41574410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com