У меня есть две модели, например:
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)
Мне бы хотелось, чтобы две модели написали пользовательский метод создания в модели Session
, поэтому, когда я пишу это:
visitor = Vistor.objects.get(id=1)
new_session = Session.objects.create_new_session(visit=visitor)
... Я получаю новую запись в таблице Session
со следующим последовательным порядковым номером для этого посетителя, т.е. 3. Вот некоторые примеры данных
VISITOR SEQUENCE_NO
------- -----------
1 1
1 2
2 1
2 2
1 3 (This would be the row that would be created)
Другой записывалпользовательский метод get в модели Session
, поэтому я пишу:
visitor = Vistor.objects.get(id=1)
new_session = Session.objects.get_session(visit=visitor, sequence_no=3)
... Я получаю предыдущую запись этого посетителя с наибольшим порядковым номером.Вот некоторые примеры данных
VISITOR SEQUENCE_NO
------- -----------
1 1
1 2 (This would be the row that would be fetched)
2 1
2 2
1 3
Не могли бы вы сказать мне, как это сделать, пожалуйста?Этот код должен быть в модели или менеджере?
Спасибо всем.