我是Django的新手,我在构建项目时遇到了一些障碍。
基本上,我有两张桌子。项目和参赛作品。用户创建项目,然后向每个项目添加条目。条目具有auto_increment ID,project_Id列用于指定哪个项目拥有条目,但条目ID在站点范围内递增。我想在每个项目的基础上增加条目,这样用户在项目中创建的第一个条目将始终为1,第二个条目将为2,等等。
我可以在models.py中执行此操作吗?例如,在:
class Entries(models.Model):
project_id = models.ForeignKey(Projects)
我可以创建另一行(比如,entry_unique)来告诉它创建另一个列,当project_id和entry_unique与前一个表项相同时,该列增加+1吗?
非常重要的是,每个条目都有一个可见的(对用户)条目ID#,每次为该项目创建一个新条目时,它会增加+1,并且他们能够通过+1或 - 来浏览其条目。 1通过“前进”和“后退”URL。
答案 0 :(得分:1)
您可以覆盖模型Entry
的{{1}}方法来完成您想要做的事情:
save
现在,无论您在何处引用项目ID,对于用户,您都可以引用class Entries(models.Model):
project_id = models.ForeignKey(Projects)
def save(self, *args, **kwargs):
user = kwargs.pop('user')
project = kwargs.pop('project')
latest = Entries.objects.filter(user=request.user, project_id=project)
latest_entry = latest.entry_unique if latest else 1
self.entry_unique = latest_entry
super(Entries, self).save(*args, **kwargs)
在此处阅读latest()