【问题标题】:Django ForeignKey show data from PostgreSQLDjango ForeignKey 显示来自 PostgreSQL 的数据
【发布时间】:2016-03-22 17:40:34
【问题描述】:

我在 PostgreSQL 中有一个数据库,它连接 2 个不同的表,让我们称它们为 TBL1(TBL1 是所有类型的表)和 TBL2(TBL2 是例如汽车),TBL1TBL2 有一个名为 type 的相同列,所以我在它们之间创建了外键。因为我不确定这是否与 Django 有任何关系......

所以,现在在模型中,我创建了(基于表单)变量,名为 type = models.ForeignKey('TBL1', db_column='type', related_name='type') 和它返回给我 Django 对象模型 ForeignKey,我猜这没问题。我想以 select 之类的形式展示它,但我不知道如何从 TBL1 获取数据。有什么办法可以做到这一点,因为我已经搜索了 2-3 天并尝试了其他选项,但没有一个能成功?我发现例如

STATUS_CHOICES = (
        ('new', _('New')),
        ('purchased', _('Purchased'))
      )

status = models.CharField(max_length=200, default='new', choices=STATUS_CHOICES)

在表单中显示选择:

附言

Django 版本是 1.5.4 和 Python 2.7 ,我从未在 Django 或 PostgreSQL 中工作过,因此将不胜感激。问候

【问题讨论】:

  • 您的表单应该已经创建了一个 ChoiceField,其中包含从 DB 为您填充的值。确保您使用的是ModelForm,它会得到妥善处理。
  • TBL1TBL2 表是 django 创建的,还是事先创建的?
  • @Rohit 会看看,这不是我的代码,我只是在修复错误 xD
  • @Tim 我创建了表格,不知道是否还有其他事情要做...
  • 好吧,也许我的问题并不完全清楚:在您的models.py 中,您是创建了class TBL1(models.Model)class TBL2(models.Model) 类,还是它们只是存在于数据库中?

标签: python django postgresql django-models django-forms


【解决方案1】:

所以在做了更多研究之后,我偶然发现了link,它很好地解释了如何在 admin.py 中编辑“内联”选项,尽管我正在浪费时间尝试从 model.py 添加数据

class FooForm(forms.ModelForm):
class Meta:
    model = Foo

def __init__(self, *args, **kwargs):
    super(FooForm, self).__init__(*args, **kwargs)
    current_state = self.instance.state
    ...construct available_choices based on current state...
    self.fields['state'].choices = available_choices

它就像我希望的那样工作:)

非常感谢大家的帮助,我不是 python/django 开发者,所以这一切对我来说都不是相似的语法:)

最好的

【讨论】:

    猜你喜欢
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 2018-02-08
    相关资源
    最近更新 更多