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

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

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

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

Python

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1017閲覧

日記サイトにいいね機能を実装したいです。

ATSUSH

総合スコア4

Django

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

Python

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/06/24 14:08

日記サイトにTwitterのようなイイね機能を実装したくて、ネットで色々調べていたのですがどのサイトも私には小難しく、理解に至らないところが多いです。????

イメージ説明

このような形でモデルを作っており、一つの記事にいいねができ、その合計も表示されるようなまさにTwitterのような機能を作りたいのですが、どなたか簡単に理解できるようコーディングも交えて説明していただけませんか、、。

javascriptも今まで学習してこなくて理解できていないところも多いので、なるべく細かくご説明していただきたいです。よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

言語やフレームワークに限らないですが、

ここだけで全て得ようとするのは、単に質問に対する回答という枠を越えます。この文章内容で「質問である」と捉える人は少ないでしょう。
もっと要件を細分化し、実現までの道筋をなるべく小さく部品化していってはどうでしょうか。

「javascriptも今まで学習してこなくて」なら基礎から学習すれば良い話で、
「まさにTwitterのような機能を作りたい」のであれば動かしてみて何が必要か自分で考えてみるのがまずやることです。

具体的に書かれていないので何をどう調べたのか知らないですが、もし「日記にいいねができる機能」という探し方をしていたのでしたらキーワードが大きすぎて見つかる情報は少ないでしょうし、今のご自身の理解度では解決の糸口にはなりにくいでしょう。

なぜなら、あなたが作っている日記アプリケーションはあくまであなたが作ったものであって、他人が作ったものではないですし、そのままが転がっていることはほぼないからです。

そのままを求めるのではなく「どういう部品があれば実現できるかを考えること」です。

私もこのような質問に対するアドバイスとしてよく書くのですが

1つのことを実現するための手段は1つではありません。
「”Hello World”と出力せよ」という課題において絶対唯一の解答は存在しないのです。

例え言語やフレームワークを指定したとしても、十人十色でしょう。

だからこそ「実現のためにどういう道筋が考えられるか」を考えることが大事です。

なので、

どなたか簡単に理解できるようコーディングも交えて説明していただけませんか、、。

これは愚問で、質問ではなく作業依頼に等しいです。
どこかの誰かが書いたコードはどこかの誰かが書いたコードであって、あなたの
コードではありませんし、今の理解度で例えコードをもらったとして、あなたのものにはならず、自身の日記アプリケーションに盛り込むことも出来ないでしょう。
コードを画像で提示されてもコピペできないのでものすごく手間で面倒な状態から、理解の得られなさそうな質問者へ、直接のアドバイスをしたい人はいないと思います。

コードそのものを求めるのではなく、自身がやりたいことと、現状を整理し、細分化し、やろうとしていることのためにどのような要素が必要なのか考えてください。
teratailのガイドラインにも今置かれている状況を整理し、わかっている範囲とわからない範囲を明確にしましょうというのがあります。

私自身もプログラミングを使って作りたいものがある時の調べ方、プログラムの組み立て方という質問に回答したことがあります。

参考にしてください。


ちなみに「何が必要か考えるのも難しい」「何一つ手がつかない」のであれば、それに手を出す段階ではないと思って良いです。いったん忘れて基礎学習に邁進してください。
既にある機能「のようなもの」といっても、その既にある機能はあくまでアプリケーション要件にそって作られたものであり、その作りは結局作った人しか分からないので、想像するしかないのです。
そして、その機能は自身の作ろうとしているものそのまま当てはめられることの方が少ないので、やはり考えるしかありません。

twitterの「いいね」よりもteratailの高評価・低評価のほうが「日記」には近いでしょけど、要件が違うので、「近い」だけであって、「そのまま考え方を適用できる」わけではないですしね。

日記自体がどういう人に読まれ、どういう人が「いいね」できるのか
「いいね」で登録する情報は何なのか、誰がいいねしたのか把握したいのかどうか
同一人物による「いいね」は許可するのか などなどなどなど などなど

実現手法を考える前に、決めるべきことが沢山あります。
仕様なので、決めるのは「作る人」です。

投稿2020/06/24 14:27

編集2020/06/24 14:50
m.ts10806

総合スコア80850

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

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

ATSUSH

2020/06/25 01:37

そうですよね、、、自分がバカでした、しっかりと心に刻んでおきます。 ありがとうございます、もっと学習進められるよう頑張ります!
guest

0

えーと、ManyToManyでUserと結べばいいと思いますが、

Python

1class Smart(models.Model): 2 # いろいろ 3 good = models.ManyToManyField("CustomUser", blank=True, related_name="sm_gooder") 4```とかで、 5例えばid=1のSmartのgoodに、id=1のUserを追加するときは 6```Python 7user = User.objects.get(id=1) 8smt = Smart.objects.get(id=1) 9smt.good.add(user) 10```ManyToManyなので重複は防げます。

投稿2020/06/24 21:45

編集2020/06/24 21:46
ForestSeo

総合スコア2720

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問