【发布时间】:2015-06-11 07:16:47
【问题描述】:
我在 Django 中编写了基本的模型序列化程序,其中 api 模仿了数据模型。我现在需要将用户首选项存储在数据库中。 api 包含一个数组。
我的用户模型:
class User(models.Model):
email_id = models.EmailField(max_length=80, blank=True, primary_key=True)
class UserPreference(models.Model)
email_id = models.ForeignKey('User')
preference = models.CharField(maxlength=20)
一个理想的 json post 请求应该是这样的
{
email:"abhishek@gmail.com"
preference : [ 'books', 'food', 'lifestyle', 'travel']
}
我希望将此 json 模式保存到 UserPreference 模型中。这需要多次插入以供偏好。什么是好的序列化器设计?
我试过了
class UserPreferenceSerializer(serializers.ModelSerializer):
class Meta:
model = UserPreference
fields = ('email_id', 'preference')
【问题讨论】:
-
Customer模型是否与User有任何关系? -
@mariodev 感谢您的建议。我已将客户编辑为用户。
-
您应该为偏好编写自己的模型,并使用 UserPreference 中的多对多字段,或偏好模型中的 ForeignKey。
-
@jaakko 我相信这是正确的行为,但我已经将我的实际大型用例剥离到我遇到问题的部分。
-
这两个答案都有效吗?
标签: django rest django-rest-framework