sqlmodel icon indicating copy to clipboard operation
sqlmodel copied to clipboard

PyCharm: No autocomplete when creating new instances

Open adlmtl opened this issue 3 years ago • 14 comments

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)

image

adlmtl avatar Sep 28 '21 22:09 adlmtl

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

woprandi avatar Oct 26 '21 10:10 woprandi

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.

5cat avatar Nov 26 '21 04:11 5cat

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 avatar Jan 03 '22 20:01 white54503

@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

thomhickey avatar Mar 19 '22 19:03 thomhickey

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

tapicer avatar Sep 06 '22 13:09 tapicer

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

ronalddas avatar Sep 08 '22 08:09 ronalddas

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?

tapicer avatar Sep 08 '22 15:09 tapicer

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

ronalddas avatar Sep 08 '22 17:09 ronalddas

No news about this issue ?

lironesamoun avatar Jan 09 '23 13:01 lironesamoun

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?

alex-linx avatar Apr 25 '23 09:04 alex-linx

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.

auroraostrovica avatar Dec 20 '23 14:12 auroraostrovica

Still an issue with PyCharm 2023.3.2 (Professional Edition).

pvlbzn avatar Jan 24 '24 19:01 pvlbzn

Still an issue with PyCharm 2024.1.1 (Professional Edition).

linpan avatar May 06 '24 06:05 linpan