2013-04-14 4 views
8

0 (무제한)의 댓글을 가진 자원 (Observation)을 만들려고합니다. 나는 다음과 같은 오류에 붙어 : 빈 코멘트에서 = (...)가 발생합니다 의견에 충실 = null이 문제의 관찰에 대한 설명이 있어야한다하더라도 객체를 추가 또한Django-tastypie 일대 다 관계

"error": "The model '<Observation: Observation object>' has an empty attribute 'comments' and doesn't allow a null value." 

.

나는 또한 전체 경로로 변경하여 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() 

답변

11

여기 Reverse “Relationships”

내 모델입니다 Observation 모델의 "comments"속성이 누락되었습니다.) =를 :중 하나

observation = models.ForeignKey(Observation, related_name="comments") 

을 추가하거나

comments = fields.ToManyField('apps.api.CommentResource2', 'comment_set', null=True) 
+0

매우 감사로 변경합니다. – ObviousCat