Code: Select all
from beanie import Document, Link
class A(Document):
first: int
second: str
class B(Document):
third: float
a_links: set[Link[A]] = {}
Dateiname: main.py
Code: Select all
from fastapi import FastAPI, HTTPException, status
from beanie import PydanticObjectId, Link
from .models import A, B
app = FastAPI()
@app.post('/b/{b_object_id}/add-link/{a_object_id}')
async def add_link(b_object_id: PydanticObjectId, a_object_id: PydanticObjectId):
b = await B.get(b_object_id)
if not b:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND)
a = await A.get(a_object_id)
if not a:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND)
b.a_links.add(Link(a))
await b.save()
return b
< /code>
Ich spreche von dieser Codezeile: < /p>
b.a_links.add(Link(a))
Auch wenn ich es als:
>
> >>>> >> ">> >>"> >> "> >>"> >>
Code: Select all
b.a_links.add(Link(a, document_class=A))
Schließlich, wenn ich es als:
b.a_links.add(Link(ref=a.id, document_class=A))
< /code>
Ich werde diesen Fehler erwerben: Erwartungstyp 'dBref', Got 'PydanticObjectId | Keine 'Stattdessen
Wie addiere ich es korrekt?