Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. class Sentence(models.Model):
  2. words = models.ManyToManyField(Word)
  3. language = models.ForeignKey(Language)
  4. def clean(self):
  5. for word in self.words.all():
  6. if word.language_id != self.language_id:
  7. raise ValidationError('One of the words has a false language')
  8.  
  9. from django import forms
  10.  
  11. class SentenceForm(forms.ModelForm):
  12. class Meta:
  13. model = Sentence
  14.  
  15. def clean(self):
  16. """
  17. Checks that all the words belong to the sentence's language.
  18. """
  19. words = self.cleaned_data.get('words')
  20. language = self.cleaned_data.get('language')
  21. if language and words:
  22. # only check the words if the language is valid
  23. for word in words:
  24. if words.language != language:
  25. raise ValidationError("The word %s has a different language" % word)
  26. return self.cleaned_data
  27.  
  28. class SentenceAdmin(admin.ModelAdmin):
  29. form = SentenceForm
  30.  
  31. admin.register(Sentence, SentenceAdmin)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement