Dan*_*nir 27 python django django-models tastypie
我有一个Django模型的属性,我想通过TastyPie ModelResource公开.
我的模型是
class UserProfile(models.Model):
_genderChoices = ((u"M", u"Male"), (u"F", u"Female"))
user = Models.OneToOneField(User, editable=False)
gender = models.CharField(max_length=2, choices = _genderChoices)
def _get_full_name(self):
return "%s %s" % (self.user.first_name, self.user.last_name)
fullName = property(_get_full_name)
Run Code Online (Sandbox Code Playgroud)
我的ModelResource是
class UserProfileResource(ModelResource):
class Meta:
queryset = models.UserProfile.objects.all()
authorization = DjangoAuthorization()
fields = ['gender', 'fullName']
Run Code Online (Sandbox Code Playgroud)
然而,我目前摆脱tastypie api的是:
{
gender: 'female',
resource_uri: "/api/v1/userprofile/55/"
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用ModelResource中的fields属性,但这没有帮助.很想知道这里发生了什么.
Jam*_*esO 34
您应该能够将其定义为字段尝试:
class UserProfileResource(ModelResource):
fullname = fields.CharField(attribute='_get_full_name', readonly=True)
class Meta:
queryset = models.UserProfile.objects.all()
authorization = DjangoAuthorization()
fields = ['gender',]
Run Code Online (Sandbox Code Playgroud)
编辑
您还必须包括:set readonly=Trueon your CharField,或者TastyPie将尝试在插入或更新时设置其值.
| 归档时间: |
|
| 查看次数: |
9846 次 |
| 最近记录: |