【问题标题】:django View Model.py Field via View.pydjango 通过 View.py 查看 Model.py 字段
【发布时间】:2018-07-17 11:44:55
【问题描述】:

我有一个 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)

一个类的每个实例都参照上面,而第一个参照USER“MyUser”自定义模型。

我卡在视图上我尝试重新阅读并弄清楚但我卡住了。

几乎所有的“演练”教程和解释都是旧的和无效的。

使用“Django==2.0.7 - Python3.6”

我只想将模型字段显示到 Views.py 及其子项中

例如:MyUser ID = 3,Organization_Information 引用它通过ID,我想在他/她登录时根据用户ID显示从用户信息到要查看的资产信息的所有信息。

我尝试使用 Query-set 但它没有按预期工作是他们的任何简单解决方案。

谢谢。

【问题讨论】:

  • 为什么要定义两次项目模型
  • 复制错误。感谢您的通知
  • 官方文档和教程没有过时,并详细解释了如何做到这一点。
  • 我已经这样做了,但英语不是我的第一语言,所以我可能误解了某些东西或无法很好地理解它。任何澄清都会有很大帮助。

标签: python django python-3.x


【解决方案1】:

使用 dict() 或 .(double underscore)dict(double underscore) 您将能够从您的类和遗产中获取所有元数据,但这也带来了所有其他功能,您必须添加一些逻辑来获取你想要的数据

或者你可以直接运行[f.name for f in MyModel._meta.get_fields()]

阅读其他问题的更多信息:Django: Get list of model fields?

【讨论】:

    【解决方案2】:

    这样试试,还是有很多办法,看官方文档

        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'
    

    【讨论】:

    • 它运行良好,但效率不高且不稳定。
    • 我读了它,一次又一次地试图弄清楚。但正如我上面所说,我无法很好地理解它。非常感谢上面的sn-p。祝你有美好的一天
    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 2020-05-18
    • 1970-01-01
    • 2021-06-07
    • 2021-12-24
    • 2014-08-07
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多