Wie füge ich Objekte/Links zu einer Reihe von Links in Beanie hinzu?Python

Python-Programme
Anonymous
 Wie füge ich Objekte/Links zu einer Reihe von Links in Beanie hinzu?

Post by Anonymous »

Angenommen, ich habe diese Beanie-Dokument , die übrigens auf dem pydantischen Modell basieren.

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]] = {}
Und ich habe diese FastAPI-Route :
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))
Wenn ich es so geschrieben habe, erhalte ich diesen Fehler: Parameter 'document_class' unbelebt
Auch wenn ich es als:
>
> >>>> >> ">> >>"> >> "> >>"> >>

Code: Select all

b.a_links.add(Link(a, document_class=A))
Ich erhalte diesen Fehler: Erwartungstyp 'dBref', erhielt 'a' stattdessen
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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post