2

ModelFormの送信に問題があります。

基本的に、私の属性の1つが除外され、フォームを作成するときにrequest.POSTオブジェクトを拡張して(ORMが問題なく保存できるように)それを含めます。私の理解から(繰り返しますが、私はdjangoに関してはn00bです)、それがどのように機能するかです。

を呼び出すとIntegrityErrorが発生しform.save()ます。

私が使用しているコードはここにあります:http://dpaste.com/783425/

編集:後世のために以下に貼り付けられたコード。

# forms.py
class CreateNewItemForm(ModelForm):
    class Meta:
        model = X.models.Y
        exclude = ('person',)

# views.py
def myview(request, person_id):
    if request.method == "POST":
        data = request.POST.copy()
        data['person'] = Person.objects.get(id=person_id)
        # NOTE: I've also tried: data['person'] = person_id

        form = CreateNewItemForm(data)

        if form.is_valid():
            form.save() # throws the IntegrityError
4

1 に答える 1

4

このコードは間違っていると思います...このためにコードを変更してください...

def myview(request, person_id):
    data = None
    if request.method == "POST":
        data = request.POST
    form = CreateNewItemForm(data)
    if form.is_valid():
        newitem = form.save(commit=False)
        newitem.person = Person.objects.get(id=person_id)
        newitem.save()
于 2012-08-08T21:01:56.827 に答える