我想有在Django抽象Company
模型,它取决于公司所涉及的类型延伸:django - 将ForeignKey提供给抽象类有哪些选择?
class Company(models.Model):
name = models.CharField(max_length=100)
address = models.CharField(max_length=100)
class Meta:
abstract = True
class Buyer(Company):
# Buyer fields..
pass
class Seller(Company):
# Seller fields...
pass
系统上的每个用户都与公司相关的,所以我想补充以下用户配置文件:
company = models.ForeignKey('Company')
但是这给了可怕的错误:
main.Profile.company: (fields.E300) Field defines a relation with model 'Company', which is either not installed, or is abstract.
所以我想象我tryi无法完成。我看到contenttypes框架可以用于此目的,如在this问题中回答的那样。我与问题是,我不希望company
字段设置为指向任何模式,但只是Company
模型的子类。
有什么我可以用于此目的吗?
感谢您的回答!在你的例子中,'company'可以指任何*模型,对吧?例如,我也可以让它指向用户模型?我会宁可指定的地方,它应该只指向公司的子类,这样的Django没有让我引用用户。但我想这可以作为验证步骤来完成? – user1496984
当然,检查出[这个答案](http://stackoverflow.com/questions/6335986/how-can-i-restrict-djangos-genericforeignkey-to-a-list-of-models)。基本上你将'limit_choices_to'参数传入'ForeignKey'中。 – metahamza
辉煌,谢谢! – user1496984