0

このフォームは正常に機能しましたが、モデルを介してデータベースに保存する方法がわかりません。これは理解できない意味論的な質問であることはわかっています。助けてください。私はdjangoを使用していますエラーは

 D = Donation(user=request.user,name=form.cleaned_data['name'],description=cd['descri‌​ption']) D.save()


views.py
    def donate(request):
        if request.method == 'POST':
            form = DonationForm(request.POST)
            if form.is_valid():
                cd = form.cleaned_data
                D = Donation(user=request.user,name=form.cleaned_data['name'],description=cd['description'])
                D.save()
                return HttpResponseRedirect('/test/')
        else:
            form =DonationForm()
        return render_to_response('addaDonation.html',{'form': form},context_instance=RequestContext(request))

` 寄付は私のモデルであり、フォームから寄付モデルに情報を取得して D.save できるようにする必要があります

class DonationForm(forms.Form):
    name = forms.CharField(max_length=50)
    description = forms.CharField(max_length=3000)
    towards = forms.CharField()
    #image = forms.ImageField()

class Donation (models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=50)
    description = models.CharField(max_length=3000)
    towards = models.ForeignKey(NonProfit)
    image = models.ImageField(upload_to='photos/%Y/%m/%d')

私が得るエラーは(1054、「「フィールドリスト」の不明な列「名前」」)です

Request information

GET
No GET data
POST
Variable    Value
csrfmiddlewaretoken u'nXGN4gdZwk2qxNpP9YIXzvNQI7lKQe5r'
towards u'this'
name    u'this'
description u'that'
4

1 に答える 1

2

フォーム クラスを次のように変更します。

from django.forms import ModelForm
class DonationForm(ModelForm):

    class Meta:
        class = Donation
        exclude = ("user", )

    def save(self, user):
        donation = super(DonationForm, self).save(commit=False)
        donation.user = user
        donation.save()
        return donation

次に、view.py を次のように変更できるはずです。

def donate(request):
    if request.method == 'POST':
        form = DonationForm(request.POST, request.FILES)
        if form.is_valid():
            form.save(request.user)
            return HttpResponseRedirect('/test/')
    else:
        form = DonationForm()
    return render_to_response('addaDonation.html',{'form': form},context_instance=RequestContext(request))

公式ドキュメントを参照モデルからフォームを作成する

于 2012-09-05T18:26:04.850 に答える