graphql-python/graphene-sqlalchemy

Relationship isn't working if a model has a property named other than 'id'.

masterchef opened this issue · 5 comments

class BusinessPriority(client.Model):
   metric_views: List['MetricView'] = orm.relationship('MetricView', secondary='business_priority_metrics_link')

class MetricView(client.Model):
    """Data around metric view for Ops Insight"""
    __tablename__ = 'metric_view'

    row_id: Union[Column, int] = Column(name='id', type_=BigInteger, primary_key=True, autoincrement=True)

I get

"errors": [
    {
      "message": "type object 'MetricView' has no attribute 'id'",
      "locations": [
        {
          "line": 8,
          "column": 9
        }
      ],
      "path": [
        "allBusinessPriorities",
        "edges",
        0,
        "node",
        "metricViews"
      ]
    },

But if I change

row_id: Union[Column, int] = Column(name='id', type_=BigInteger, primary_key=True, autoincrement=True)
to
id: Union[Column, int] = Column(name='id', type_=BigInteger, primary_key=True, autoincrement=True)

The join and query works well.

This should have been fixed in this PR. Beware that the syntax for filtering has changed to match that used by Dgraph.

Ugh I'm still on version 2.3.0 because we can't use beta versions in our company. When is the v3 planned for GA?

As soon as the filters are done. They are in the final stages of testing. A month or two.

I'm testing the beta with a DB column named id but aliased to id_

Thank you! Looking forward to taking advantage of it!

Hey @masterchef, we have a release candidate out now https://github.com/graphql-python/graphene-sqlalchemy/releases/tag/v3.0.0rc1

We'd appreciate any feedback before the full release!