Python Getiing此错误-uu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;实例';

Python Getiing此错误-uu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;实例';,python,django,Python,Django,我使用一个非基于模型的表单django。 获得数据后,我创建一个模型对象。 但是当我试图编辑我的文章(一个基于博客/引用的应用程序)时,我无法使用特定文章的模型对象创建表单对象 这是我的密码: views.py: def quote_form(request): if request.method=='POST': form=Quote(request.POST) if form.is_valid(): quote=form.cleaned_data['quote

我使用一个非基于模型的表单django。 获得数据后,我创建一个模型对象。 但是当我试图编辑我的文章(一个基于博客/引用的应用程序)时,我无法使用特定文章的模型对象创建表单对象

这是我的密码:

views.py:

def quote_form(request):
if request.method=='POST':
    form=Quote(request.POST)
    if form.is_valid():
        quote=form.cleaned_data['quote']
        author=form.cleaned_data['author']
        popularity=form.cleaned_data['popularity']
        category=form.cleaned_data['category']
        p=Quote1(quote=quote, author=author, popularity=popularity, category=category)
        p.save()
        return redirect("quote_list")
else:
    form=Quote()
    return render(request,'quote/form.html',{'form':form})


def quote_edit(request, pk):
    q = get_object_or_404(Quote1, pk=pk)
    if request.method == "POST":
        form = Quote(request.POST,instance=q)
        if form.is_valid():
            q = form.save(commit=False)
            q.author = request.user
            q.save()
            return redirect('quote_detail', pk=q.pk)
            #return render(request,"blog/post_detail.html",{'post':post})
    else:
        form = Quote(instance=q)
        return render(request, 'quote/quote_edit.html', {'form': form})
models.py:

class Quote1(models.Model):
    quote=models.CharField(max_length=200)
    author=models.CharField(max_length=200)
    popularity=models.IntegerField()
    category=models.CharField(max_length=40)
forms.py:

class Quote(forms.Form):
    quote=forms.CharField()
    author=forms.CharField()
    popularity=forms.IntegerField()
    category=forms.ChoiceField(choices=[('life','life'),('happiness','happiness'),('love','love'),('truth','truth'),
                                    ('inspiration','inspiration'),('humor','humor'),('philosophy','philosophy'),('science','science')])
试试这个:

def quote_edit(request, pk): 
    q = get_object_or_404(Quote1, pk=pk) 
    if request.method == "POST": 
    form = Quote(request.POST) 
    if form.is_valid():  
        quote=form.cleaned_data['quote'] 
        author=form.cleaned_data['author']
        popularity=form.cleaned_data['popularity']
        category=form.cleaned_data['category'] 
        q.quote=quote
        q.author=author
        q.popularity=popularity
        q.category=category
        q.save()
    else: 
        form = Quote(initial=reauest.POST.copy())
        return render(request, 'quote/quote_edit.html', {'form': form})
附言:
使用ModelForm可能是更好的方法。如果您可以切换到ModelForm,我也可以提供帮助。

您的
报价单
不是
ModelForm
,因此它确实无法处理
实例
参数,因为它没有编辑模型对象。因此,我如何解决这个问题,而是创建一个新报价单。