Saya ingin mengubah perilaku default bagaimana admin bar samping perubahan terbaru menampilkan nama "objek" yang ditambahkan. Lihat gambar di bawah ini:
Saya ingin mengubah bagaimana ini dinamai di Admin. Idealnya, saya ingin bisa mengubahnya dari "objek MyModelName" menjadi, seperti dalam contoh objek "Kebijakan", sesuatu seperti "Kebijakan: {{nilai bidang" Nama Kebijakan "kebijakan.}}.
Saya berpikir __unicode__
untuk model Pasien saya yang menangani ini, tetapi tampaknya tidak. Bantuan apa pun dihargai.
django
django-models
django-admin
patrickn
sumber
sumber
__unicode__
melakukan itu. Rekatkan kode Anda sehingga kami dapat melihat apa yang salah__unicode__
tidak berhasil untuk saya dengan Python 3. Namun,__str__
berhasil seperti yang didokumentasikan dalam jawaban di bawahJawaban:
__unicode__
melakukan itu. Model Anda akan terlihat seperti ini:Di Python 3, Anda perlu menggunakan
__str__
:sumber
Menggunakan
__str__
metode bekerja pada Python3 dan Django1.8:sumber
String yang Anda lihat berasal dari
__unicode__
metode, seperti yang disebutkan orang lain. Tetapi masalahnya adalah admin menyimpan representasi string dari suatu objek ketika membuat peristiwa log, oleh karena itu jika Anda menambahkan__unicode__
implementasi setelah entri log disimpan, Anda tidak akan melihat judul baru pada item lama, hanya setelah Anda membuat beberapa aktivitas barusumber
Jawaban yang disebutkan
__str__
dan__unicode__
metode sudah benar. Seperti yang tercantum dalam dokumen Namun, sejak versi 1.6 (saya pikir), Anda dapat menggunakanpython_2_unicode_compatible
dekorator untuk kedua Python 2 dan Python 3:Anda juga dapat menggunakan yang di atas pada non-
Model
objek.sumber
Anda perlu menentukan, kolom mana yang ingin Anda tampilkan ...
sebagai contoh:
sumber
Anda benar dalam berpikir bahwa
__unicode__
melakukan itu. Saya sedang menjalankan ini sekarang:Ketika saya melihat di daftar aksi terbaru, saya melihat judul film yang baru saja saya edit.
sumber
Ini akan berhasil, menggunakan def str (self): yang mengembalikan self.title
Gunakan sesuatu seperti:
sumber
Sejak pertanyaan ini berumur 6 tahun, banyak hal telah berubah. Biarkan saya memperbaruinya. Dengan python3.6 dan versi terbaru Django (2.1.2) Anda harus selalu menggunakan
__str__()
kode baru.__unicode__()
adalah cerita lama untuk python2.7 karena di python3,str
adalahunicode
.sumber
Dengan menambahkan
__str__()
metode ke modelPatient
seperti ini:akan menampilkan nama pasien, bukan objek. Untuk detailnya periksa di sini
sumber