2013-12-08 41 views
0

節省中止時,這個問題被連接到這一個:Django - disable model editing更好的UI消息在Django管理

這是我的代碼:

def save(self, *args, **kwargs): 
     if self.pk is None: 
      print "THIS IS ADD ACTION. NOT DELETE OR CHANGE !!!" 

      numberOfAvalableBooks = Book.objects.get(id=self.book.id).amount 
      print 'numberOfAvalableBooks %s' % numberOfAvalableBooks 

      if self.get_action_display() == 'Out': 
       if numberOfAvalableBooks - self.amount < 0: 
        return "YOU DO NOT HAVE ENOUGH BOOKS !!!" 

      super(Transaction, self).save(*args, **kwargs) 

      # UPDATE AMOUNT 
      book = Book.objects.get(id=self.book.id) 

      if self.get_action_display() == 'Out': 
       book.amount -= self.amount 
      elif self.get_action_display() == 'In': 
       book.amount += self.amount 
      else: 
       print "UNKNOWN ACTION !!!" 

      book.save() 
     else: 
      print self.pk 
      return "CHANGE ACTION DISABLED !!!" 

這是工作的罰款,沒有更新或刪除是可能的。
我不喜歡的是,點擊「保存」按鈕後,我仍然有黃色的消息,「......已成功添加。」。

是否可能以及如何替換該信息並使其具有不同的顏色?

感謝

回答

1

Overwirte你的管理類的response_add(self, request, obj, post_url_continue=None)方法。

有在django/contrib/admin/options.py

這裏原始ModelAdmin.response_add一看就是添加和更改實例後覆蓋信息模型管理的一個非常基本的例子。

class AmodelAdmin(admin.ModelAdmin): 
    ... 
    def response_add(self, request, obj, post_url_continue=None): 
     from django.core.urlresolvers import reverse 
     msg = "DON'T CLICK THIS BUTTON!" 
     self.message_user(request, msg, level=messages.WARNING) 
     return self.response_post_save_add(request, obj) 

    def response_change(self, request, obj):) 
     msg = "DON'T CLICK THIS BUTTON!" 
     self.message_user(request, msg, level=messages.WARNING) 
     return self.response_post_save_change(request, obj) 
+0

我編輯了你的response_change方法來滿足我的需要。你也有BUG,你沒有導入消息。感謝您的幫助。 – WebOrCode