0
我有以下模型:獨特的價值問題
class Vehicle(models.Model):
name = models.CharField(max_length=180, verbose_name='Nazwa')
variant = models.IntegerField(default=0)
route = models.ForeignKey(Route)
active = models.BooleanField(default=True)
class Meta:
unique_together = ("name", "variant")
def save(self, *args, **kwargs):
vehicles = Vehicle.objects.filter(name=self.name).order_by('-variant')
try:
self.variant = vehicles[0].variant+1
except:
pass
super(Vehicle, self).save(*args, **kwargs)
的問題是,當我創建新的對象,該名稱不會在數據庫中出現,它創建了variant = 1
代替default 0
對象。當我創建另一個同名的對象時,variant is incremented by 2 instead of 1
。
因此,當我創建多個具有相同名稱的對象時,variants
僅以奇數顯示,e.g.: 1,3,5,7,9,11...
我的模型出了什麼問題?
因爲你正在做的'車[0] .variant + 1' __and__'超(車輛,個體經營).save(.. 。。保存命令被調用兩次,所以'variant'增加兩次 – sshashank124