这是我的模特
class company(models.Model):
User = models.ForeignKey(User,related_name="Company_Owner",on_delete=models.CASCADE,null=True,blank=True)
Name = models.CharField(max_length=50,blank=False)
class group(models.Model):
User = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True)
group_Name = models.CharField(max_length=32,unique=True,error_messages={'unique':"This Group Name has already been registered"})
Company = models.ForeignKey(company,on_delete=models.CASCADE,null=True,blank=True,related_name='Company_group')
class ledger1(models.Model):
User = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True)
Company = models.ForeignKey(company,on_delete=models.CASCADE,null=True,blank=True,related_name='Companys')
Creation_Date = models.DateField(default=datetime.now)
name = models.CharField(max_length=32,unique=True)
这些是我为会计应用程序创建的模型... 公司模型通过外键连接到组和分类帐... 我想为用户创建的不同公司提供不同的组和分类帐...
就像在django中为所有用户所做的一样,我们需要为用户执行以下操作:
filter(User=request.user)
类似地,我可以为我的公司做类似的事情吗? 我的意思是一家公司将拥有不同的组和分类帐集。.
在Django中可以吗? 如果是,谁能帮我解决这个问题...
提前谢谢
答案 0 :(得分:2)
如果我很了解您的需求,这要归功于您在组和分类账上拥有的公司模型的外键。您只需要在查询中使用您在模型中指定的“ related_name”值即可。 https://docs.djangoproject.com/en/2.1/topics/db/queries/
示例:
# get the companies created by the user
companies = company.objects.filter(User=request.user)
# select the company you need for example the first one
mycompany = companies.first()
# then get groups or ledgers related to it
groups = mycompany.Company_group.all()
ledgers = mycompany.Companys.all()
只是一个建议:声明类和属性时,请尝试使用始终相同的格式(例如始终使用小写),这样会更易于阅读和使用它们。