sqlmodel
sqlmodel copied to clipboard
PyCharm: No autocomplete when creating new instances
First Check
- [X] I added a very descriptive title to this issue.
- [X] I used the GitHub search to find a similar issue and didn't find it.
- [X] I searched the SQLModel documentation, with the integrated search.
- [X] I already searched in Google "How to X in SQLModel" and didn't find any information.
- [X] I already read and followed all the tutorial in the docs and didn't find an answer.
- [X] I already checked if it is not related to SQLModel but to Pydantic.
- [X] I already checked if it is not related to SQLModel but to SQLAlchemy.
Commit to Help
- [X] I commit to help with one of those options 👆
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
- Create Model
- Create new instance of model
- I expected to see autocompletion for model attributes as shown in the features section of docs
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)
I think it's a PyCharm issue https://youtrack.jetbrains.com/issue/PY-30187
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.
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.
@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:

This is still an issue with PyCharm 2022.2.1, any workaround? Pydantic's plugin doesn't help with the query's columns autocompletion.
Installing the pydantic plugin worked for me, am running Pycharm 2022.2.1 Build #PY-222.3739.56
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?
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
No news about this issue ?
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?
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.
Still an issue with PyCharm 2023.3.2 (Professional Edition).
Still an issue with PyCharm 2024.1.1 (Professional Edition).