Django Rest Frame не может получить родительский идентификатор само-вложенного объекта - PullRequest
0 голосов
/ 01 февраля 2019
******* Models *******

class Category(models.Model):
    category_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=50)
    parent_id = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True)
    notes = models.CharField(max_length=200)
    def __str__(self):
        return '{0}, parent: {1}'.format(self.name, self.parent_id)

class Game(models.Model):
    name = models.CharField(max_length=50)
    category_id = models.ForeignKey(Category, on_delete=models.CASCADE)
    start_time = models.DateTimeField('Start Time', null=True, blank=True)
    end_time = models.DateTimeField('End Time', null=True, blank=True)
    opponent1 = models.CharField(max_length=200, null=True, blank=True)
    opponent2 = models.CharField(max_length=200, null=True, blank=True)
    description = models.CharField(max_length=200)
    status_id = models.ForeignKey(Status, on_delete=models.CASCADE)

    def __str__(self):
        return '{0}: {1}'.format(self.name, self.category_id)

    def get_absolute_url(self):
        return reverse('game-detail', args=[str(self.id)])

******* Serializer ********

class CategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = Category
        fields = '__all__'

class GameSerializer(serializers.ModelSerializer):
    category_id = CategorySerializer(read_only=True)
    class Meta:
        model = Game
        fields = '__all__'

Я пишу API, чтобы получить parent_Id из category_id из всех игр, которые возвращает API.Но когда я возвращаю все игры, он не показывает значение parent_Id.

Я также пытался добавить подкатегорию в CategorySerializer, но он все еще не работает

class SubCategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = Category
        fields = '__all__'

class CategorySerializer(serializers.ModelSerializer):
    subcategories = SubCategorySerializer(read_only=True)
    class Meta:
        model = Category
        fields = '__all__'

Может кто-топомогите мне это исправить?Заранее спасибо.

...