Closed larsakerson closed 1 year ago
You are right. What I have seen done in cases like this (Django, flask) is to provide class name as a string and lazily resolve the class later.... need to think about this one.
Actually something like this might work @aleafa: https://stackoverflow.com/questions/3270045/python-circular-references
class A:
... # all fields except the circular references
class B:
... # all fields except the circular references
# then define the circular references:
A.b = Linkfield(..., A)
B.a = Linkfield(..., A)
If this is a serious/large application you may want to look into how and mitigation for memory leaks in circular references.
Thanks, @gtalarico. I had tried this, but it causes a KeyError
in the Model
from_record
method when creating an instance. This error occurs even though the linked field is present in the record result from Airtable and the field name referenced in the model matches the Airtable field name.
Thanks for the reference re mitigating memory leaks. Definitely worth keeping in mind in situations like this.
This was resolved in #277; see https://pyairtable.readthedocs.io/en/stable/orm.html#linked-records
I'm having trouble modeling an Airtable base that includes linked fields between several tables. The issue appears to be that I can't reference the linked object model until that model is declared, but each model has links to other tables.
A simplified instance, for example:
In which case I receive the following error on line 2 of this snippet:
NameError: name 'TableTwo' is not defined
Is there a better way to approach modeling this base?