質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1932閲覧

django呼び出したクエリセット内の重複項目を削除したい

ktg_st

総合スコア33

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/03 17:29

編集2020/07/04 14:12

djangoでdbから呼び出したデータの重複項目を削除したいです。

bb=Shops.objects.all()

試したこと

c=[] b=0 for a in bb: if a == b: pass else: c.append(a) b=a

print()で表示した見たところ、aはstr型の数字(1-9)だったので上記のようにif分で回してみましたが、すべてelseの方に行ってしました。

何か良い方法はないでしょうか?
よろしくお願いします。

追記

models.py class Shops(models.Model): SHOP_CHOICES = ( ('1', 'A店'), ('2', 'B店'), ('3', 'C店'), ('4', 'D店'), ('5', 'E店'), ('6', 'F店'), ) shop = models.CharField("店舗", max_length=3,choices=SHOP_CHOICES, blank=True,default=1) user = models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,) def __str__(self): return self.shop

やりたいこと
htmlで店舗リストみたいのを作製したい。
厳密にはshopsモデルというよりも、shops.shopをが重複しないように取り出したいです。
shops.shopを取り出すと、表示する際に、shops.get_shop_display(店舗名を表示したい)が使えなくなるためshopsでを重複しないように取り出したいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2020/07/04 06:11

bbにはどのような内容が入っているかを具体的に提示ください。
ktg_st

2020/07/04 14:12

更新いたしました。
guest

回答2

0

自己解決

無理やりっぽいやり方ではありますが解決しました。

bb=Shops.objects.all() c=[] h=[] b= 0 for a in bb: if a.shop in h: pass else: c.append(a) h.append(a.shop)

bbだとdbのidで取り出されているっぽいので重複を認識できるように別のリストに同時に入れていき、ifで回しました。
もっといい方法があれば知りたいです。

投稿2020/07/05 15:20

ktg_st

総合スコア33

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Python

1bb = set(Shops.objects.all()) 2```とかはいけますか?

投稿2020/07/03 22:59

ForestSeo

総合スコア2720

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ktg_st

2020/07/04 06:02

試しましたがダメでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問