我有以下型号:
class Author(model):
name = CharField(...)
class Post(mode):
author = ForeignKey(Author)
title = CharField(...)
假设我们最多有100位作者。因此,autors的主键将在1到100的范围内我希望帖子模型的主键基于帖子作者的主键。
我的意思是,如果作者的主键为34,则他/她发布的主键为34000001、34000002、34000003
建议这样做,我该怎么做?
通常不建议这样做,并且可能会诱使您遵循(或发明)反模式。例如,如果您的目标是能够轻松访问特定作者的帖子,那么使用Django的常规ORM模式将是最安全的。例如:
# models.py
class Author(model):
name = CharField(...)
class Post(model):
author = ForeignKey(Author, related_name='posts')
title = CharField(...)
然后在任何地方,您可以...
sally = Author.objects.get(id=1)
sallys_posts = author.posts.all()
这比您可能会想做的事情Post.objects.filter(pk__startswith=sally.pk)
要安全得多,我认为这会导致大量错误,而且还意味着您错过了普通模式的Django ORM有很多好处。