1👍
Here is an example with two OneToOneField keys:
from django.db import models
class Meaning(models.Model):
definition = models.TextField(null=True)
class Word(models.Model):
masculine_meaning = models.OneToOneField(Meaning, null=True, related_name='mword')
feminine_meaning = models.OneToOneField(Meaning, null=True, related_name='fword')
pronunciation = models.CharField(max_length=64, null=True, blank=True)
Example based on Spanish (my Italian is peggiore)
meaning1 = Meaning()
meaning1.meaning = 'Hand'
meaning1.save()
meaning2 = Meaning()
meaning2.meaning = 'Lever'
meaning2.save()
word1 = Word()
word1.pronunciation = 'braccio'
word1.masculine_meaning = meaning1
word1.feminine_meaning = meaning2
word1.save()
Query for hand
qs = Meaning.objects.filter(definition='Hand').select_related('mword', 'fword')
for x in qs:
if x.mword: print x.mword.pronounciation
if x.fword: print x.fword.pronounciation
👤2ps
Source:stackexchange.com