django获取一对一字段的关联数据

问题描述 投票:0回答:1

我在Django 2.0工作

我有一个模型Note来保存笔记和另外两个模型来添加颜色标签到笔记。

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)

Note的对象

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

我想访问相关的ColorLabelstitlevalue字段或NoteLabel对象。

因为他们是一对一的领域。我试过了

note.note_label
note.NoteLabel
note.note_label_set

但所有回报错误为

AttributeError: 'Note' object has no attribute 'note_label_set'
django django-models django-2.0
1个回答
1
投票

除非你在related_name中定义OneToOneField,否则Django将使用小写的模型名来访问相关对象。所以,note.notelabel应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.