2012-08-24 3 views
0

저는 Fattura라는 모델을 가지고 있는데, "printable"필드의 기본값을 "numero"필드의 값을 포함하는 문자열로 설정하고 싶습니다. .django는 모델 필드의 기본값을 자체 속성으로 설정합니다

하지만 link_fattura의 인수가 적다는 오류가 있지만 기본적으로 link_fattura (self)를 추가하면 자체가 정의되지 않았기 때문에 오류가 발생합니다.

이 문제를 어떻게 해결할 수 있습니까?

class Fattura(models.Model): 
     def link_fattura(self, *args, **kwargs): 
       return u"http://127.0.0.1:8000/fatture/%s/" % (self.numero) 
     data = models.DateField() 
     numero = models.CharField("Numero", max_length=3) 
     fatturaProForma = models.ForeignKey(FatturaProForma) 
     printable = models.CharField("Fattura stampabile", max_length=200, default=link_fattura) 
     def __unicode__(self): 
       return u"%s %s" % (self.data, self.numero) 
     class Meta: 
       verbose_name_plural = "Fatture" 
       ordering = ['data'] 

답변

0

죄송합니다. 귀하의 모델이 아직 그 단계에서 저장되지 않았기 때문에 잘못된 질문은 자바 스크립트 없이는 불가능합니다.

당신은 같은 수행하여 URL을 예상 할 수 :

def link_facttura(self): 
    if not self.id: 
     return some_url/fattura/%d/ % Fattura.objects.latest().id+1 
    return u"" 

을하지만 당신은 default 인수를 사용하여이 작업을 수행 할 수 있습니다 삭제 기록

1

을 시작하면 그것은 추한하는 오류를 일으킬 가능성이 높습니다. 가장 좋은 방법은 save 방법을 재정의하는 것입니다.

def save(self, *args, **kwargs): 
    if not self.id and not self.printable: 
     self.printable = self.link_fattura() 
    return super(Fattura, self).save(*args, **kwargs) 
관련 문제