2017-10-19 11 views
0

私はこのエラーを以前に見たことがありません。保存機能がシェルまたはビューのいずれかでモデルを更新していません。また、エラーメッセージも表示されません。以下は、また、私はモデルのフォームを使用して、私の更新ビューでは動作しません、私は保存がdjango、シェル、モデルフォームで動作していません

>>> from course.models import Course 
>>> course = Course.objects.get(pk=1) 
>>> course.title 
'test' 

を終了して再入力シェルならば、私はモデルのフォームのコードをポストカント

>>> from course.models import Course 
>>> course = Course.objects.get(pk=1) 
>>> course.title 
'test' 
>>> course.title = "NameChange" 
>>> course.title 
'NameChange' 
>>> course.save() 
>>> 

@superuser_required 
def update(request, course_id): 
    course = get_object_or_404(Course, pk=course_id) 
    if request.method=='POST': 
     form = CourseForm(data=request.POST, instance=course) 

     if form.is_valid(): 
      form.save() 
      messages.info(request, _("The course has been updated")) 
      return redirect(reverse("course:admin:index")) 

    else: 
     form = CourseForm(instance=course) 

    context = {'form': form,} 

    return render(request, 'course/admin/update.html', context) 

私はmodels.pyファイルをポストだろうが、StackOverflowのは私をさせないだろう、あまりにも多くのコードがあると言います。

+0

モデルにsave()メソッド関数がありますか? –

+0

デフセーブ(自己、* argsを、** kwargsから): \t \tない場合self.slug: \t \t \t self.slug = slugify(self.title) \t \t \tスーパー(コース、自己).SAVE( * args、** kwargs) –

+0

if条件の後に 'super(Course、self).save(* args、** kwargs)'を追加すると、モデルを保存できるようになります –

答えて

1

は、あなたが示すように、モデルにあなたはdef saveメソッドを持っているが、それは達成されていない場合であれば条件はあなたが本当のsaveメソッドを呼び出すために持っていることを解決するために実行したときにのみ保存:

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

    super(Course,self).save(*args,**kwargs) # Calling save method 

More information

関連する問題