(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可能有不同的喜爱颜色。
我如何设置模型和序列化器以获得此结果?我已经尝试过嵌套序列化程序,但是只允许用户发布新的收藏夹颜色,而不能检索其他一些特定保存实例的收藏夹颜色。
非常感谢您的帮助。