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!

rampok
sumber
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')
Daniel Roseman
sumber
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