【发布时间】:2017-01-11 01:12:24
【问题描述】:
我有一个显示表单并保存相同表单的视图。显示视图没有问题,但保存时出现以下错误:
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])
查看:
@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)])
我该如何解决?
【问题讨论】: