πŸ” Как ΡƒΠ·Π½Π°Ρ‚ΡŒ ID записи Django: Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ руководство ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ID записи Π² Django, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ id ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ pk ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°:

from myapp.models import MyModel

# ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ ID
mymodel = MyModel.objects.get(id=1)

# ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ID ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚
object_id = mymodel.id

# Или ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ID ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ pk
object_pk = mymodel.pk

print(f"ID ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: {object_id}")
print(f"ID ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: {object_pk}")

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ id записи Django

Π’ Django каТдая запись Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ "id". Π£Π·Π½Π°Ρ‚ΡŒ "id" записи Π² Django ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ….

1. ИспользованиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° id послС сохранСния записи

ПослС сохранСния записи Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ Django ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ автоматичСски присвоСнный "id". Для получСния "id" записи, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ id ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


        obj = MyModel.objects.create(name='Example')
        obj.save()
        obj_id = obj.id
        print(obj_id)
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ MyModel с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ 'Example'. ПослС сохранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΅Π³ΠΎ "id" с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° id ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

2. ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° values() ΠΈΠ»ΠΈ values_list()

Π’ Django Ρ‚Π°ΠΊΠΆΠ΅ доступны ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ values() ΠΈ values_list(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ значСния ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π²ΠΈΠ΄Π΅ словаря ΠΈΠ»ΠΈ списка. ΠŸΡ€ΠΈ использовании этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ "id" Π² спискС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для получСния "id" записи. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


        obj = MyModel.objects.values('id').get(name='Example')
        obj_id = obj['id']
        print(obj_id)
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ values() для получСния словаря Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° MyModel с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ 'Example'. Π—Π°Ρ‚Π΅ΠΌ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "id" ΠΈΠ· словаря ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ.

3. ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° get()

ΠœΠ΅Ρ‚ΠΎΠ΄ get() позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ запись ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΡƒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ условиям. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄, ΡƒΠΊΠ°Π·Π°Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ условия для поиска, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ»Π΅ "id". ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


        obj = MyModel.objects.get(id=1)
        obj_id = obj.id
        print(obj_id)
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ get() для получСния записи ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ "id" Ρ€Π°Π²Π½ΠΎ 1. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ "id" этой записи ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

4. ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° filter()

ΠœΠ΅Ρ‚ΠΎΠ΄ filter() позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ записСй ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ условиям. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄, ΡƒΠΊΠ°Π·Π°Π² условиС для поиска "id". ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


        objs = MyModel.objects.filter(id=1)
        for obj in objs:
            obj_id = obj.id
            print(obj_id)
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ filter() для получСния Π½Π°Π±ΠΎΡ€Π° записСй ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ "id" Ρ€Π°Π²Π½ΠΎ 1. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи Π² Π½Π°Π±ΠΎΡ€Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ "id" ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ нСсколько способов, ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ "id" записи Π² Django. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ id послС сохранСния записи, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ values() ΠΈΠ»ΠΈ values_list() для получСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π΅ΠΉ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ get() ΠΈΠ»ΠΈ filter() для поиска ΠΏΠΎ "id" ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ условиям. НачнитС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Django, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ "id" Π½ΡƒΠΆΠ½ΠΎΠΉ записи ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π΅ΠΉ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

#20. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π° записСй ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†. Fields lookups | Π£Ρ€ΠΎΠΊΠΈ ΠΏΠΎ Django 4

36 ИзмСнСниС ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ записСй. ΠšΡƒΡ€Ρ ΠΏΠΎ Django 3

13 ДинамичСский URL Django. Dynamic URL routing Django 3

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ” Как ΡƒΠ·Π½Π°Ρ‚ΡŒ ID записи Django: Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ руководство ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты