我使用的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对象是由有效用户创建的。
请建议我该怎么做才能解决这个问题
答案 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)