在Django Rest Framework中从保存的实例到序列化器的数据检索

时间:2018-06-25 14:49:33

标签: python django django-rest-framework

(Django 2.0,Python 3.6,Django Rest Framework 3.8.2)

我想知道如何检索在另一个模型中另存为实例的数据,并将其包含在另一个序列化器中作为选择字段。例如,假设我有以下模型:

class Colors(models.Model):

    email = models.EmailField(max_length=255, unique = True)

    RED = 'RED'
    BLUE = 'BLUE'
    GREEN = 'GREEN'
    YELLOW = 'YELLOW'
    ORANGE = 'ORANGE'

    COLOR_CHOICES = (
        (RED, 'red'),
        (BLUE, 'blue'),
        (GREEN, 'green'),
        (YELLOW, 'yellow'),
        (ORANGE, 'orange')
    )

    favorite_colors = models.CharField(
        max_length=6, choices=COLOR_CHOICES
    )




class PickFromSpecifiedColors(models.Model):

    #THIS IS PART OF WHERE MY PROBLEM LIES
    #TO ACHIEVE WHAT I WANT, I DON'T KNOW IF I NEED TO IMPLEMENT THAT LOGIC HERE
    #OR IN MY SERIALIZER

    colors_user_id_7_selected = models.ForeignKey(Colors, on_delete=models.CASCADE)

id = 7的用户在Colors中创建了以下帖子:

{
    'id': 7
    'email': 'example@example.com',
    'favorite colors': 'red','blue','green'
}

当我转到PickFromeSpecifiedColors进行发布时,我希望将以下选项视为一个选择字段,该选项将选择限制为仅提供id = 7的用户:

{
    'colors_user_id_7_selected': 'red','blue','green'
}

用户1到6可能有不同的喜爱颜色。

我如何设置模型和序列化器以获得此结果?我已经尝试过嵌套序列化程序,但是只允许用户发布新的收藏夹颜色,而不能检索其他一些特定保存实例的收藏夹颜色。

非常感谢您的帮助。

0 个答案:

没有答案