2010-10-21 136 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