2017-10-19 7 views
0

S'il vous plaît aider, je n'ai pas vu cette erreur avant. La fonction de sauvegarde ne met pas à jour mon modèle soit dans Shell ou dans la vue. Il ne donne également aucun message d'erreur.Enregistrer ne fonctionne pas dans django, dans shell et le formulaire de modèle

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

Si je quitte et puis entrez le shell

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

Ce qui suit fonctionne pas non plus sur mon point de vue de la mise à jour où j'utilise un modèle de forme, je ne peux pas afficher le code pour le modèle de formulaire .

@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) 

Je signalerais mon fichier models.py mais StackOverflow ne me laisse pas, dit il y a trop beaucoup de code.

+0

Avez-vous une fonction de méthode save() dans vos modèles? –

+0

def save (auto, * args, ** kwargs): \t \t sinon self.slug: \t \t \t self.slug = slugify (self.title) \t \t \t super (Cours, auto) .save (* args, ** kwargs) –

+0

ajouter 'super (Course, auto) .save (* args, ** kwargs)' après la condition if si votre modèle peut être sauvegardé –

Répondre

1

Comme vous le montrer, dans le modèle que vous avez la méthode def save, mais seulement enregistrer lorsqu'une si cet état, faites pour résoudre que vous devez appeler la vraie méthode de sauvegarde si elle est pas accomplir:

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