2017-10-19 24 views
0

請幫忙,我之前沒有看到這個錯誤。保存函數沒有在Shell或視圖中更新我的模型。它也不會給出錯誤信息。保存不在django中,在shell和模型中

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

如果我退出,然後重新進入外殼

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

下也不會在這裏我用一個模型構成了我更新視圖的工作,我不能張貼雛型代碼。

@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方法,但只有當一個if條件執行來解決,你必須調用真正的保存方法,如果它沒有達到節省:

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