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

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

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

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

Python

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

Q&A

受付中

Djangoでpk を含んだ詳細ページの下の階層に、別のpkを含んだ階層を作り移動したい。

alizona
alizona

総合スコア126

Django

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

Python

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

1回答

0グッド

0クリップ

256閲覧

投稿2023/01/03 03:35

編集2023/01/03 03:54

Djangoで、myapp/1/updatecomment/1

のような階層に移動したい場合どうすればいいのでしょうか?
updatecommnet の前にpkを入れるとエラーになります。
そのため現在は、
myapp/updatecomment/1
へ移動しています。

python

1urlpatterns=[ 2 path("",frontpage,name="frontpage"), 3 path("<int:pk>/", post_detail, name="post_detail"), 4 path('updatecomment/<pk>/', views.Updatecomment.as_view(),name="updatecomment"),

python

1#post_detail.html 2<a href="{% url 'updatecomment' comment.pk %}">edit comment</a>

python

1#models.py 2class Post(models.Model): 3 title=models.CharField(max_length=255) 4 due= models.DateTimeField( 5 auto_now=False, 6 editable=True, 7 blank=False, 8 null=False) 9 fromwho = models.CharField(max_length=20) 10 11 towho = models.ForeignKey( 12 Towho, 13 on_delete=models.CASCADE) 14 body=models.TextField() 15 posted_date=models.DateTimeField(auto_now_add=True) 16 image = CloudinaryField('image', null=True, blank=True) 17 video = CloudinaryField('video', null=True, blank=True) 18 19 20#-----------------------------comment--------------------------- 21class Comment(models.Model): 22 post = models.ForeignKey(Post, related_name="comments", on_delete=models.CASCADE) 23 name = models.CharField(max_length=255) 24 body= models.TextField() 25 posted_date=models.DateTimeField(auto_now_add=True) 26 image = CloudinaryField('image', null=True, blank=True) 27 video = CloudinaryField('video', null=True, blank=True)

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

0

2つのPKではないですが2つの別名のIDを利用してはいかがでしょう

urls.py

urlpatterns = [ path('<int:mainid>/<int:secondid>', views.detail, name='detail'), ]

views.py

def detail(request, mainid ,secondid): return HttpResponse("mainid %s secondid %s." % (mainid, secondid))

投稿2023/01/04 02:04

yuma.inaura

総合スコア1432

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.83%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Django

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

Python

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