so I'm working with django-models and I want to pass the quantity of objects that class have then pass it as model argument LIKE SO:
class someclass:
somevar = 'somevalue'
def retrieve1():
return somevar
def retrieve2(self):
return self.somevar
def retrieve3():
return someclass.somevar
#returns NameError: name 'somevar' is not defined
value1 = retrieve1()
#returns TypeError: retrieve2() missing 1 required positional argument: 'self'
value2 = retrieve2()
#returns NameError: name 'someclass' is not defined
value3 = retrieve3()
I even tried to pass the somevar as instance with __init__ but nothing good:
class someclass:
def __init__(self):
self.somevar = 'somevalue'
#returns NameError: name 'self' is not defined
value = self.somevar
what I'm missing here ????!
I tried every single thing like treat the method as @classmethod, @staticmethod nothing helped
here's the real code i'm struggiling with:
class Box(models.Model):
#so as u see, i'm trying to get the len of all objects that class holds
def defaultOrder():
return len(Box.objects.all()) + 1
name = models.CharField(max_length=100, unique=True)
order = models.IntegerField(
blank=False,
unique=True,
#here will be passed
default= defaultOrder()
)
end_days = models.IntegerField(blank=False)
end_hours = models.IntegerField(blank=False)
end_minutes = models.IntegerField(blank=False)
def __str__(self):
return self.name
sooo as u see, I just want to treat the class as I was outside of it !
It's realy hard to explain it in CS way, I hope you understand ..
idfield that is generated automatically not enough?