Saya agak baru di webapps dan database secara umum jadi ini mungkin pertanyaan bodoh. Saya ingin membuat model ("CategoryModel") dengan bidang yang menunjuk ke id utama contoh lain dari model (induknya).
class CategoryModel(models.Model):
parent = models.ForeignKey(CategoryModel)
Bagaimana saya melakukan ini? Terima kasih!
python
django
django-orm
sfendell
sumber
sumber
parent
bukanparentId
, karenamy_category_model.parent
akan menjadi contoh dariCategoryModel
. Django akan secara otomatis membuat anggotaparent_id
yang akan menjadi kunci utama dari model terkait.Jawaban:
Anda dapat memberikan nama model sebagai string ke ForeignKey dan itu akan melakukan hal yang benar.
Begitu:
Atau Anda bisa menggunakan string "diri"
sumber
Anda dapat menggunakan string 'diri' untuk menunjukkan referensi-diri.
https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey
sumber
self
tidak ada saat mendefinisikan properti model. Jika properti sedang didefinisikan sebagai bagian dari__init__()
atau metode lain, itu akan menjadi, sepertiself
selalu argumen posisi pertama untuk setiap metode instance dari kelas Python.https://books.agiliq.com/projects/django-orm-cookbook/en/latest/self_fk.html
ATAU
https://stackabuse.com/recursive-model-relationships-in-django/
sumber
Anda juga untuk menyelesaikan null = Benar dan kosong = Benar
null = Benar, untuk mengizinkan dalam database
kosong = Benar, untuk mengizinkan validasi formulir
sumber