tiangolo / sqlmodel

SQL databases in Python, designed for simplicity, compatibility, and robustness.
https://sqlmodel.tiangolo.com/
MIT License
13.7k stars 616 forks source link

PyCharm: No autocomplete when creating new instances #115

Open adlmtl opened 2 years ago

adlmtl commented 2 years ago

First Check

Commit to Help

Example Code

from datetime import datetime

from sqlmodel import Field, SQLModel
from typing import Optional

class MyModel(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    dev_email: str = Field(index=True)
    account_id: str = Field(index=True)
    other_id: Optional[str] = None
    failed: Optional[bool] = False
    created: datetime = Field(sa_column_kwargs={'default': datetime.utcnow})
    updated: datetime = Field(sa_column_kwargs={'default': datetime.utcnow, 'onupdate': datetime.utcnow})

Description

Operating System

macOS

Operating System Details

No response

SQLModel Version

0.0.4

Python Version

3.8

Additional Context

No autocompletion in PyCharm when creating new instance. (only when fetching an instance from db)

image

woprandi commented 2 years ago

I think it's a PyCharm issue https://youtrack.jetbrains.com/issue/PY-30187

5cat commented 2 years ago

The same issue exist in Pydantic and they made a plugin for it in PyCharm. I tried it in the hopes that it might fix this issue but sadly it only worked on pydantic models.

white54503 commented 2 years ago

I found a fix here: https://github.com/koxudaxi/pydantic-pycharm-plugin/issues/344. Relevant provided you've installed the Pydantic plugin.

tldr: Add the following lines to your pyproject.yaml.

[tool.pydantic-pycharm-plugin]
ignore-init-method-arguments = true

I had to restart Pycharm to get it working.

thomhickey commented 2 years ago

@white54503 solution didn't work for me, I still only get autocomplete on instantiated objects, not on the sqlmodel table class itself for example when writing queries:

image
tapicer commented 1 year ago

This is still an issue with PyCharm 2022.2.1, any workaround? Pydantic's plugin doesn't help with the query's columns autocompletion.

ronalddas commented 1 year ago

Installing the pydantic plugin worked for me, am running Pycharm 2022.2.1 Build #PY-222.3739.56

tapicer commented 1 year ago

Installing the pydantic plugin worked for me, am running Pycharm 2022.2.1 Build #PY-222.3739.56

It does work for me when creating new instances, but it doesn't when making queries with SQLModel. Does that work for you?

ronalddas commented 1 year ago

Installing the pydantic plugin worked for me, am running Pycharm 2022.2.1 Build #PY-222.3739.56

It does work for me when creating new instances, but it doesn't when making queries with SQLModel. Does that work for you?

Yeah only works for creating new instances, I also tried doing the toml file config, still doesn't work as expected l

lironesamoun commented 1 year ago

No news about this issue ?

alex-linx commented 1 year ago

I'm also having this issue in pycharm 2023.1. I get autocomplete on instances of SQLModel, but can't get autocomplete on fields of the class. It does work in VSCode. Any news on this?

auroraostrovica commented 7 months ago

In my experience, the most effective solution for flask sqlalchemy autocomplete is by installing flask-sqlalchemy-stubs package, a method I've found to be particularly insightful.

If this resolves your issue, feel free to explore concise solutions through my book https://pythonalliance.gumroad.com/l/ayuze where you can uncover efficient one line fixes.

pvlbzn commented 6 months ago

Still an issue with PyCharm 2023.3.2 (Professional Edition).

linpan commented 2 months ago

Still an issue with PyCharm 2024.1.1 (Professional Edition).