fix setting new related model just from dict with pkname
This commit is contained in:
@ -87,6 +87,8 @@ class ForeignKeyField(BaseField):
|
||||
|
||||
@classmethod
|
||||
def _construct_model_from_dict(cls, value: dict, child: "Model") -> "Model":
|
||||
if len(value.keys()) == 1 and list(value.keys())[0] == cls.to.Meta.pkname:
|
||||
value["__pk_only__"] = True
|
||||
model = cls.to(**value)
|
||||
cls.register_relation(model, child)
|
||||
return model
|
||||
|
||||
@ -133,6 +133,8 @@ async def test_model_crud():
|
||||
assert album1.pk == 1
|
||||
assert album1.tracks is None
|
||||
|
||||
await Track.objects.create(album={"id": track.album.pk}, title="The Bird2", position=4)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_select_related():
|
||||
|
||||
@ -61,13 +61,13 @@ def create_test_database():
|
||||
@app.get("/items/", response_model=List[Item])
|
||||
async def get_items():
|
||||
items = await Item.objects.select_related("category").all()
|
||||
return [item.dict() for item in items]
|
||||
return items
|
||||
|
||||
|
||||
@app.post("/items/", response_model=Item)
|
||||
async def create_item(item: Item):
|
||||
item = await Item.objects.create(**item.dict())
|
||||
return item.dict()
|
||||
await item.save()
|
||||
return item
|
||||
|
||||
|
||||
@app.post("/categories/", response_model=Category)
|
||||
|
||||
Reference in New Issue
Block a user