我正在创建一个人力资源项目,包括3个应用程序'主要网站' CandidatePart',' CompanyPart'。
我需要建议构建我的模型,现在如下:
CompanyPart:
class Company(models.Model):
company_name = models.CharField(max_length = 250)
def __str__(self):
return self.company_name
class Team(models.Model):
company = models.ForeignKey(Company, on_delete=models.CASCADE)
team_name = models.CharField(max_length = 500)
def __str__(self):
return self.team_name
class TeamMember(models.Model):
team = models.ManyToManyField(Team)
first_name = models.CharField(max_length=150)
last_name = models.CharField(max_length=150)
position = models.CharField(max_length=150,default='')
def __str__(self):
return self.first_name + ' ' + self.last_name + ' as ' + self.position
class HR_member(models.Model):
company = models.ForeignKey(Company, on_delete=models.CASCADE)
first_name = models.CharField(max_length=150)
last_name = models.CharField(max_length=150)
def __str__(self):
return self.first_name + ' ' + self.last_name
CandidatePart:
class Candidate(models.Model):
HR = models.ForeignKey('CompanyPart.HR_member')
company = models.ForeignKey('CompanyPart.company', default = '')
first_name = models.CharField(max_length=150)
last_name = models.CharField(max_length=150)
email = models.EmailField()
我有两个外国人来访问HR和公司
那么,如果选择任何公司,我如何根据人力资源选择隐藏其他公司详细信息或隐藏其他人力资源详细信息。
答案 0 :(得分:0)
您可以通过在相应模块/应用的admin.py中添加代码来在管理控制台上进行过滤。例如,如果我的项目名称是xyz,并且我有一个名为a,b和c的应用程序,我想对b进行一些过滤,那么在b / admin.py中执行以下操作:
class xxxAdmin(admin.ModelAdmin):
//list_display = ['user', 'business_name'] => this line displays needed columns only, optional.
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "user":
kwargs["queryset"] = User.objects.filter(is_staff=True)
return super(xxxAdmin, self).formfield_for_foreignkey(db_field, request,**kwargs)
我希望这就是你要找的东西。
有关详细信息,请参阅官方文档here