Search code examples
pythondjangodjango-rest-frameworkdjango-hvad

Django-hvad translate model of django-rest-framework


I'm trying to implement django-hvad on a django app but I'm getting an error when I'm trying to launch python manage.py runserver :

File "/Users/Philippe/Documents/DjangoApp/env/lib/python3.6/site-packages/hvad/manager.py", line 265, in _clone
    return super(TranslationQueryset, self)._clone(**kwargs)
TypeError: _clone() got an unexpected keyword argument 'shared_model'

Did I made any mistakes to translate my models? Thanks for your help!

models.py

class Opponent(TranslatableModel):
    name = models.CharField(max_length=255, unique=True, null=True)
    companyType = models.ForeignKey(CompanyType, on_delete=models.SET_NULL, blank=True, null=True, related_name='opponents')
    pricing = models.ManyToManyField(Pricing, blank=True)
    translations = TranslatedFields(
        description = models.TextField(null=True, blank=True)
    )

    def __str__(self):
        return "{}" .format(self.name)

    def save(self, *args, **kwargs):
        super(Opponent, self).save(*args, **kwargs)  # Call the "real" save() method.

serializers.py

class OpponentSerializer(TranslatableModelSerializer):
    class Meta:
        model = Opponent
        fields = '__all__'

views.py

class OpponentViewSet(viewsets.ModelViewSet):
    queryset = Opponent.objects.language().all()
    serializer_class = OpponentSerializer

    def get_queryset(self):
        user_language = self.request.GET.get('language')
        return Opponent.objects.language(user_language).all()

Solution

  • Django-hvad is not compatible yet with Django 2. Here's the issue