TastyPie外国人麻烦

时间:2015-05-07 14:24:53

标签: tastypie

我使用的django.contrib.auth.models.User模型类没有自定义代码,我也使用了以下模型:

class XYZ(models.Model):
      xyzstring = models.TextField()
      created_by = models.ForeignKey(User)

资源类如下:

class UserResource(ModelResource):
    class Meta:
         queryset = User.objects.all()
         resource_name = 'user'
         excludes = ['email', 'password', 'is_active', 'is_staff', 'is_superuser']
        filtering = {
           'username': ALL,
         }

class XYZResource(ModelResource):
    created_by = fields.ForeignKey(UserResource, 'user', full=True)
    class Meta:
        queryset = XYZ.objects.all()
        resource_name = 'xyz'
        allowed_methods = ['get','post','put']
        details_uri_name= 'id'
        paginator_class = Paginator

当我去 / api / v1 / xyz / 时,我收到错误:

模特' XYZ'有一个空属性'用户'并且不允许空值。

数据库在xyz表的created_by列中具有有效的用户标识。如果我在XYZResource中删除created_by行,我根本不会获得created_by属性。 created_by不会采用空值,因为XYZ对象是由有效用户创建的。

请建议我该怎么做才能解决这个问题

2 个答案:

答案 0 :(得分:1)

伙计们非常感谢你们帮助我。出于沮丧,我用“created_by”替换了以下行中的“user”并且它已经工作!!

created_by = fields.ForeignKey(UserResource,'user',full = True)

created_by = fields.ForeignKey(UserResource,'created_by',full = True)

答案 1 :(得分:0)

更改created_by字段以允许空值

created_by = fields.ForeignKey(UserResource, 'user', full=True, null=True)