Ich arbeite an einem Web für Übersetzer in Django. Jeder Übersetzer kann verschiedene Sprachen auf verschiedenen Ebenen sprechen. So kann Übersetzer 1 Englisch auf der Ebene "professionell" sprechen, Übersetzer 2 kann Englisch auf der Ebene "Muttersprache" sprechen.Wie wird die Hierarchie für Django-Objekte der gleichen Klasse festgelegt?
Es gibt vier verschiedene Levels
. (Stufe ist ein Modell)
class Level(models.Model):
LEVEL_CHOICES = (
('unknown', _('Unknown')),
('standard', _('Standard level')),
('professional', _('Professional level')),
('native', _('Native speaker level')),
)
name = models.CharField(max_length=40, choices=LEVEL_CHOICES, blank=False, null=False,
help_text=_('Choose a level'))
def __str__(self):
return '{}'.format(self.get_name_display())
Und Modell LanguageLevel
:
class LanguageLevel(models.Model):
language = models.ForeignKey(Language,
help_text=_('Choose a language'), related_name='language_levels')
level = models.ForeignKey(Level,
help_text=_('Choose a level of the language'))
price_multiplier = models.FloatField(default=0.0,
help_text=_('Type a price multiplier'))
def __str__(self):
return '{}: {}'.format(self.language, self.level)
class Meta:
unique_together = (('level', 'language'),)
Nun, was das Problem ist. Das Problem ist, dass ich, wenn ich zum Beispiel einen Übersetzer English
auf Level "Standard" sprechen möchte, in der Tat Übersetzer English
auf Ebene entweder 'Standard', 'Professional' oder 'Native' bekommen möchte, weil diejenigen, die kann sprechen "nativ" kann auch "Standard" sprechen.
Es gibt viele Situationen in meinem Projekt, so möchte ich dies vereinfachen.
So unknown
< standard
< professional
< native
. Jetzt, wenn ich versuche, alle Übersetzer sprechen Englisch auf standard
Ebene zu bekommen, möchte ich auch und native
bekommen.
Können Sie mir einen Rat geben?