Django: aksesor terbalik untuk kunci asing bentrok


113

Saya memiliki dua model Django yang mewarisi dari kelas dasar:

- Request
    - Inquiry
    - Analysis

Permintaan memiliki dua kunci asing untuk model Pengguna bawaan.

create_user = models.ForeignKey(User, related_name='requests_created')
assign_user = models.ForeignKey(User, related_name='requests_assigned')

Untuk beberapa alasan saya mendapatkan kesalahan

Reverse accessor for 'Analysis.assign_user' clashes with reverse accessor for 'Inquiry.assign_user'.

Semua yang saya baca mengatakan bahwa pengaturan related_nameharus mencegah bentrokan, tetapi saya masih mendapatkan kesalahan yang sama. Adakah yang bisa memikirkan mengapa ini terjadi? Terima kasih!


1
Bisakah Anda memposting definisi model Anda, termasuk Inquirydan Analysisdan hubungannya denganRequest
dm03514

tautan yang diperbarui untuk nama terkait di Django 1.9
Seb

Jawaban:


138

Ini related_nameakan memastikan bahwa bidang tidak saling bertentangan, tetapi Anda memiliki dua model, yang masing-masing memiliki kedua bidang tersebut. Anda perlu memasukkan nama model beton di masing-masing model, yang dapat Anda lakukan dengan beberapa substitusi string khusus :

 create_user = models.ForeignKey(User, related_name='%(class)s_requests_created')

1
Tautan dalam jawaban Anda sudah mati.
Matt D

2
@MatthewDrill Saya mengirimkan suntingan untuk memperbaikinya, sementara itu coba docs.djangoproject.com/en/1.10/topics/db/models/…
Ivan

Jawaban yang bagus! Terima kasih!
Tms91
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.