8
私は無制限のコメントに0を持つリソース(Observation)を作成しようとしています。私は次のエラーでこだわっている:Django-tastypie 1対多の関係
"error": "The model '<Observation: Observation object>' has an empty attribute 'comments' and doesn't allow a null value."
また、コメント=(...)にnull = Trueで追加することは問題の観測のためのコメントがあるはずにもかかわらず、空のコメントオブジェクトになります。
また、完全パスに変更することでCommentResource2パスを使いこなそうとしました。
私はTastypieのドキュメントからの逆恋愛ガイドを追ってきた。ここで
は私のモデルです:
class Observation(ObsModel):
taxon_node = models.ForeignKey(TaxonNode, related_name = 'observation_taxon_node', null = True)
substrate = models.ForeignKey(TaxonNode, related_name = 'observation_substrate', null = True, blank=True)
source = models.CharField(max_length=255, blank=True)
sample = models.ForeignKey(Sample)
remarks = models.TextField(blank = True)
exact_time = models.DateTimeField(null=True)
individual_count = models.IntegerField(null = True)
is_verified = models.NullBooleanField(null = True)
verified_by = models.ForeignKey(User, null = True)
verified_time = models.DateTimeField('time verified', null = True)
class Meta():
app_label = 'observation'
class Comment(models.Model):
observation = models.ForeignKey(Observation)
comment = models.TextField()
created_time = models.DateTimeField('time created', auto_now_add=True, editable=False)
class Meta:
app_label = 'observation_moderate'
とリソース:
class ObservationResource2(ModelResource):
comments = fields.ToManyField('apps.api.CommentResource2', 'comments')
class Meta:
queryset = Observation.objects.filter(is_verified=False)
authentication = SessionAuthentication()
authorization = DjangoAuthorization()
resource_name = 'observation'
class CommentResource2(ModelResource):
observation = fields.ToOneField(ObservationResource2, 'observation')
class Meta:
queryset = Comment.objects.all()
resource_name = 'comments'
authentication = SessionAuthentication()
authorization = DjangoAuthorization()
に変更のいずれかありがとうございました:=)。 – ObviousCat