2017-12-24 5 views
0

Ich arbeite in Django 2.0django erhalten Daten 0.59 Feld zugeordnet

Ich habe ein Modell Note Note und zwei weitere Modelle speichern Farbetiketten auf die Note hinzuzufügen.

class Note(models.Model): 
    user = models.ForeignKey(User, on_delete=models.CASCADE) 
    title = models.CharField(max_length=250, blank=True, default='Untitled') 
    content = models.TextField(blank=True) 

class ColorLabels(models.Model): 
    title = models.CharField(max_length=100, unique=True) 
    value = models.CharField(max_length=100) 
    default = models.BooleanField(default=False) 

class NoteLabel(models.Model): 
    note = models.OneToOneField(Note, on_delete=models.CASCADE) 
    color_label = models.OneToOneField(ColorLabels, on_delete=models.CASCADE) 

mit dem Ziel, Note

note = Note.objects.get(pk=1) 

Ich will damit verbundenen ColorLabels ‚s title und value Felder oder NoteLabel Objekt zuzugreifen.

da sie eins zu eins Feld sind. Ich habe versucht,

note.note_label 
note.NoteLabel 
note.note_label_set 

Aber alle Rückkehr Fehler als

AttributeError: 'Note' object has no attribute 'note_label_set' 

Antwort

0

tun Wenn Sie related_name in Ihrem OneToOneField definieren, wird Django klein geschrieben Modellnamen verwenden, um verwandte Objekt zuzugreifen. Also, note.notelabel sollte funktionieren.

+0

Danke. Wie kann ich 'notes' basierend auf' color_label' 'title' herausfiltern? –

+0

löste es durch Ausführen von 'notelabel__color_label__title__iexact' –