Django Tastypie ToOneField不工作
我的模型:Django Tastypie ToOneField不工作,django,tastypie,Django,Tastypie,我的模型: class UserDetails(models.Model): user=models.ForeignKey(User) email=models.CharField(max_length=30) name=models.CharField(max_length=30) class Problem(models.Model): user=models.OneToOneField(UserDetails) onset_time=models.
class UserDetails(models.Model):
user=models.ForeignKey(User)
email=models.CharField(max_length=30)
name=models.CharField(max_length=30)
class Problem(models.Model):
user=models.OneToOneField(UserDetails)
onset_time=models.CharField(max_length=20)
symptoms=models.CharField(max_length=50)
资源:
class ProblemResource(ModelResource):
class Meta:
queryset=Problem.objects.all()
resource_name="hypo"
class UserResource(ModelResource):
hypo=fields.ToOneField(ProblemResource,'hypo')
class Meta:
queryset=UserDetails.objects.all()
resource_name="user"
我想使用'/user'api调用获取特定用户的问题,但出现以下错误:-
{“error”:“模型“”具有空属性'hypo',不允许空值。”}
我已经查看了数据,没有空值。如果在模型中为空值指定默认值,该怎么办
user=models.OneToOneField(UserDetails, on_delete=models.SET_NULL, null=True, blank=True)
如果在模型中为null指定默认值会怎么样
user=models.OneToOneField(UserDetails, on_delete=models.SET_NULL, null=True, blank=True)
这里的问题是UserResource中的属性“hypo”。 根据文档属性,表示: 命名由资源包装的对象的实例属性的字符串。该属性将在脱水过程中访问或在水合物生成过程中写入 因此,在您的UserResource中,“hypo”不是一个属性,“problem”是正确的属性(指您的模型) 因此,更改UserResource中的属性可以解决问题:
class UserResource(ModelResource):
hypo=fields.ToOneField(ProblemResource,'problem')
class Meta:
queryset=UserDetails.objects.all()
resource_name="user"
阅读更多信息:这里的问题是UserResource中的属性“hypo”。 根据文档属性,表示: 命名由资源包装的对象的实例属性的字符串。该属性将在脱水过程中访问或在水合物生成过程中写入 因此,在您的UserResource中,“hypo”不是一个属性,“problem”是正确的属性(指您的模型) 因此,更改UserResource中的属性可以解决问题:
class UserResource(ModelResource):
hypo=fields.ToOneField(ProblemResource,'problem')
class Meta:
queryset=UserDetails.objects.all()
resource_name="user"
阅读更多信息:我只需在问题模型中提供
相关的
就可以解决问题
class Problem(models.Model):
user=models.OneToOneField(UserDetails,related_name='hypo')
onset_time=models.CharField(max_length=20)
symptoms=models.CharField(max_length=50)
有更多关于相关名称标签的详细信息。我只需在问题模型中提供
related\u name='hypo'
就可以解决这个问题
class Problem(models.Model):
user=models.OneToOneField(UserDetails,related_name='hypo')
onset_time=models.CharField(max_length=20)
symptoms=models.CharField(max_length=50)
有更多关于相关名称标签的详细信息。我认为问题在于“UserResource”而不是“problem”模型尝试了您的解决方案,但仍然出现了相同的错误我认为问题在于“UserResource”而不是“problem”模型尝试了您的解决方案,但仍然出现了相同的错误这解决了吗?这解决了吗?