python - Help with creating a custom create and a custom get method -
i have 2 models so:
class visit(models.model): id = models.autofield(primary_key=true) name = models.charfield(max_length=65535, null=false) class session: id = models.autofield(primary_key=true) visit = models.foreignkey(visit) sequence_no = models.integerfield(null = false)
i'd 2 write custom create method in session
model when write this:
visitor = vistor.objects.get(id=1) new_session = session.objects.create_new_session(visit=visitor)
...i new record in session
table next consecutive sequence number visitor i.e. 3. here's sample data
visitor sequence_no ------- ----------- 1 1 1 2 2 1 2 2 1 3 (this row created)
the other writing custom method in session
model write:
visitor = vistor.objects.get(id=1) new_session = session.objects.get_session(visit=visitor, sequence_no=3)
...i previous record of visitor highest sequence number. here's sample data
visitor sequence_no ------- ----------- 1 1 1 2 (this row fetched) 2 1 2 2 1 3
could tell me how accomplish please? should code in model or manager?
thanks everyone.
this in manager sessions. (untested):
class sessionmanager(models.manager): def new_session(self, visit, **kwargs): vs = self.model.objects.filter(visit=visit).order_by("-sequence_no")[:1] if len(vs): kwargs.update({"sequence_no": vs.sequence_no + 1}) return super(sessionmanager, self).create(visit=visit, **kwargs)
as getting session when have visit, , sequence_no there shouldn't custom code needed that.
Comments
Post a Comment