Python django View Model.py字段通过View.py

Python django View Model.py字段通过View.py,python,django,python-3.x,Python,Django,Python 3.x,我有一个model.py,它将3个类链接到一个用户 class Organization_Information(models.Model): Organization_name = models.CharField(max_length=25) Organization_address = models.CharField(max_length=40) Organization_admin = models.OneToOneField(MyUser, on_delet

我有一个model.py,它将3个类链接到一个用户

class Organization_Information(models.Model):

    Organization_name = models.CharField(max_length=25)
    Organization_address = models.CharField(max_length=40)
    Organization_admin = models.OneToOneField(MyUser, on_delete=models.CASCADE, null=True, blank=True)

class Project(models.Model):

    project_name = models.CharField(max_length= 25, default='')
    organisation_name = models.ForeignKey('Organization_Information', on_delete=models.CASCADE)

class Asset(models.Model):

    asset_note = models.TextField(default='',)
    project_name = models.ForeignKey('Project', on_delete=models.CASCADE)
类的每个实例都引用上述内容,第一个实例引用USERMyUser自定义模型

我被困在这个观点上,我试着重新阅读它并弄明白它,但是我被卡住了

几乎所有的穿行教程和解释都是旧的和无效的

使用Django==2.0.7-Python3.6

我只想在Views.py及其子视图中显示模型字段

例如:MyUser ID=3,组织信息通过ID引用,我想根据用户登录时的ID显示从用户信息到要查看的资产信息的所有信息

我尝试使用用户查询集,但它并没有像他们所希望的那样工作,这是任何简单的解决方案


谢谢。

像这样试试,还是有很多方法可以做到,查一下官方文件

    x=MyUser.objects.get(id=1)
    x.organization_information.Organization_name
    u'llc'

    >>> x.organization_information.Organization_address
    u'new york'
    >>> x.organization_information.Organization_admin
    <User: hi>
    >>> 

    y=x.organization_information.project_set.first()
    >>> y.project_name
    u'app'
    >>> y.organisation_name
    <Organization_Information: Organization_Information object>
    z=y.asset_set.first()
    >>> z.asset_note
    u'train'
    >>> z.project_name
    <Project: Project object>
    >>> z.project_name.project_name
    u'app'

使用dict或.double下划线double下划线您将能够访问类和传统中的所有元数据,但这也带来了所有其他函数,您必须添加一些逻辑来获取所需的数据

或者您可以只运行[MyModel中f的f.name.\u meta.get\u fields]


阅读另一个问题的更多内容:

为什么要定义两次项目模型?这是一个复制错误。感谢您的通知官方文档和教程没有过时,请详细解释如何做到这一点。我已经做到了,但英语不是我的第一语言,因此我可能误解了某些内容或不能很好地理解它。任何澄清都会有很大帮助。它工作得很好,但效率不高,也不稳定。我读了一遍又一遍地试图弄明白。但正如我上面所说的,我不能很好地理解它。非常感谢上面的片段。祝你有愉快的一天