"So your Translation needs a FK to each of two different words. "
What would this look like?

On Monday, September 12, 2016 at 10:42:10 PM UTC-7, Mike Dewhirst wrote:
>
> On 13/09/2016 3:02 PM, Hanh Kieu wrote: 
> > Hey guys, I'm creating a translation app that allows you to translate 
> > from one object to the other. My translation model has two foreign 
> > keys that links to two words, and on the admin site I want the Admin 
> > to be able to input two different words. The words they enter should 
> > be saved as individual words, as well as a translation. However, it 
> > looks like this isn't possible at all in Django. I've been trying so 
> > hard to read documentation but I am struggling. My Models look like 
> this: 
> > 
> > class Language(models.Model): 
> >      language_text = models.CharField(max_length=200) 
> > 
> >      def __str__(self): 
> >          return self.language_text 
> > 
> > 
> > class Word(models.Model): 
> >      language = models.ForeignKey(Language,on_delete=models.CASCADE) 
> >      word_text = models.CharField(max_length=200) 
> > 
> >      def __str__(self): 
> >          return self.word_text 
> > 
> > 
> > class Translation(models.Model): 
> >      #word1 belongs to one word word1 = 
> models.OneToOneField(Word,on_delete=models.CASCADE,related_name="Translation_word1")
>  
>
> >      #word2 belongs to another word word2 = 
> models.OneToOneField(Word,on_delete=models.CASCADE,related_name="Translation_word2")
>  
>
>
> Word has a FK to Language so a word exists in a language and presumably 
> language_text will contain the name of the language like Ruby or French 
> etc. 
>
> So for that word to exist in another language, another word in that 
> other language must have a FK to that other language. So if you have 
> enough words in enough languages it would certainly be useful to connect 
> them via a translation record. 
>
> But perhaps 1:1 is not what you want? 
>
> Maybe a particular word can be translated into two or three languages? 
>
> If so, you need an intermediate table which connects any one word with 
> many other words which belong in different languages. Sometimes too, the 
> same word is in more than one language with the same meaning. 
>
> One translation record needs to make a single connection between any two 
> word records. So your Translation needs a FK to each of two different 
> words. 
>
> Because you probably want to enter words for which you don't have the 
> translation immediately to hand, it might be worthwhile permitting 
> Null=True and blank=True. 
>
> Hth 
>
> > I want the admin page for Translation to be able to take in two words 
> > and two languages and create a translation from them (rather than 
> > individually creating one word, then individually creating another 
> > word, then indiviudally creating a translation) 
> > 
> > I've tried using TranslationForm(models.ModelForm), however when I 
> > submit it gives me an error that there are NULL values for my models 
> > :C. Help I am really lost and no one has been of help, I'm getting 
> > really frustrated with this aspect of django. 
> > 
> > If someone could take time to actually understand my problem and help 
> > out that would be great please :C 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> > Groups "Django users" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> > an email to django-users...@googlegroups.com <javascript:> 
> > <mailto:django-users+unsubscr...@googlegroups.com <javascript:>>. 
> > To post to this group, send email to django...@googlegroups.com 
> <javascript:> 
> > <mailto:django...@googlegroups.com <javascript:>>. 
> > Visit this group at https://groups.google.com/group/django-users. 
> > To view this discussion on the web visit 
> > 
> https://groups.google.com/d/msgid/django-users/9ab72b11-b7b3-4c1a-bf26-3ed4befb212f%40googlegroups.com
>  
> > <
> https://groups.google.com/d/msgid/django-users/9ab72b11-b7b3-4c1a-bf26-3ed4befb212f%40googlegroups.com?utm_medium=email&utm_source=footer>.
>  
>
> > For more options, visit https://groups.google.com/d/optout. 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/53110a43-f7e7-449c-9e74-2606a2d71854%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to