【发布时间】:2015-08-06 21:31:28
【问题描述】:
假设这个模型:
class Tweek(models.Model):
content = models.CharField(max_length=140)
date = models.DateTimeField(auto_now_add=True)
author = models.ForeignKey(User, related_name='author')
class Meta:
ordering = ['-date']
def __unicode__(self):
return self.content
一切正常,现在我尝试绑定一个休息 api uppon。我已经安装了 django rest 框架,我可以检索 tweeks 但我无法创建新的。
我有这个用于 Tweek 模型的序列化程序:
class TweekSerializer(serializers.ModelSerializer):
author = UserSerializer()
class Meta:
model = Tweek
fields = ('content', 'date', 'author')
def create(self, validated_data):
author_data = validated_data.pop('author')
author = User.objects.get(username=author_data)
return Tweek.objects.create(author=author, **validated_data)
用户序列化器看起来像:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'first_name', 'last_name')
但帖子返回
{
"author": {
"username": [
"This field must be unique."
]
}
}
我已经按照文档进行了操作,但我对这个案例迷失了 :( 有什么想法吗?
【问题讨论】:
标签: django django-rest-framework