2010-10-21 131 views
1

如果此日期已存在,我喜歡輸出錯誤消息。 有人想法嗎?django模型保存錯誤消息

class Bet(models.Model): 

name = models.CharField(max_length=30, verbose_name='Name') 
date = models.DateTimeField(verbose_name='Datum') 

def __unicode__(self): 
    return self.name 

def save(self): 
    newDate = self.date 

    try: 
     Bet.objects.get(date=newDate) 
     ## error message and return to form 

    except Bet.DoesNotExist: 
     super(Bet, self).save() 

回答

1

您需要將日期添加到您模型的元節中的unique_together。

class Bet(models.Model): 

    name = models.CharField(max_length=30, verbose_name='Name') 
    date = models.DateTimeField(verbose_name='Datum') 

    class Meta: 
     unique_together = ('date') 

或者獨特添加到日期字段:

class Bet(models.Model): 
    name = models.CharField(max_length=30, verbose_name='Name') 
    date = models.DateTimeField(verbose_name='Datum', unique=True)   

在你的邏輯添加打賭你會有這樣的事情:

def add_bet(request): 
    if request.method == 'POST': 
     bet_form = BetForm(request.POST) 
     if bet_form.is_valid(): 
      #save bet 
     else: 
      create_user_message(request, "unsuccess", strip_tags(bet_form.non_field_errors())) 

試圖增加一個賭注同一日期將失敗,打印一條消息,如下所示:「與此日期打賭已存在」。

+0

非常感謝,工作得很好。 – Roland 2010-10-22 08:53:27