1
질병 모델 및 증거 모델에 특성을 표시하려고하지만 끝 링크에 표시된 특성은 규칙 모델에있는 특성 만 표시합니다.중첩 관계 serializer 나머지 프레임 워크가 제대로 표시되지 않음
Models.py는 : -
class Rule(models.Model):
disease = models.ForeignKey(Disease, default=0,related_name="DRules")
evidence = models.ForeignKey(Evidence, default=0,related_name="ERules")
measure_of_belief = models.PositiveIntegerField(\
help_text="The measure of belief (percentage) that a disease is present given this evidence exists", \
default=0,validators=[MinValueValidator(0), MaxValueValidator(100)])
measure_of_disbelief = models.PositiveIntegerField(\
help_text="The measure of disbelief (percentage) that a disease is present given an evidence does not exists", \
default=0,validators=[MinValueValidator(0), MaxValueValidator(100)])
archived = models.BooleanField(default=False)
def __str__(self):
return "{}-{}".format(self.disease, self.evidence)
class Meta:
verbose_name = "Rule"
verbose_name_plural = "Rules"
unique_together = ('disease', 'evidence',)
class Disease(models.Model):
"""
The model where the category will be stored
"""
name = models.CharField(max_length=255)
advise = models.CharField(max_length=500,blank=True)
archived = models.BooleanField(default=False)
def __str__(self):
return self.name
class Meta:
verbose_name = "Disease"
verbose_name_plural = "Diseases"
class Evidence(models.Model):
evidence_choices = {
("Observable Evidence", ("Observable Evidence")),
("Cause", ("Cause"))
}
name = models.CharField(max_length=255)
question = models.CharField(max_length=500)
evidence_type = models.CharField(choices = evidence_choices,max_length=20,default="Observable Evidences")
archived = models.BooleanField(default=False)
image_name = models.ImageField(upload_to='media/', default='media/None/no-img.jpg')
def __str__(self):
return self.name
class Meta:
verbose_name = "Evidence"
verbose_name_plural = "Evidences"
Serializers.py
class DiseaseSerializer(serializers.ModelSerializer):
class Meta:
model = Disease
fields = '__all__'
class EvidenceSerializer(serializers.ModelSerializer):
class Meta:
model = Evidence
fields = '__all__'
class RuleSerializer(serializers.ModelSerializer):
DRules = DiseaseSerializer(many=True,read_only=True)
ERules = EvidenceSerializer(many=True,read_only=True)
class Meta:
model = Rule
fields = ('measure_of_belief','disease','evidence','DRules','ERules')
는
views.py:-
class ShowDiseaseProfile(APIView):
def get(self,request,profileid):
profile = Rule.objects.filter(
disease_id=profileid)
serializer = RuleSerializer(
profile,many=True)
return Response(serializer.data)
내가 달성하기 위해 노력하고있어 모든 데이터를 표시하는 것입니다 질병, 증거 및 규칙에 존재합니다.
질병 모델 및 증거 모델의 값이 표시되지 않고 오류 또는 충돌이 없습니다.
내가 인터넷을 샅 샅히 뒤져하려고, 그래서 "규칙 객체에 'DRules'를 찾을 수 없습니다가, 'DRules는'prefetch_related()에 잘못된 매개 변수"나는 문제가 나는을 가지고 생각 1.10 버전의 Django –
더 이상 사용되지 않는 값이있을 수 있으므로 장고를 업데이트해야합니까? –
이 문제와 장고 1.10 관련 문제는 무엇입니까? – Jason