Hello.
I'm trying to get a generic foreign key to work with Django REST Framework,
a very simple case, but I can't get it to work, I always get this error
when trying to access the API:
'GenericForeignKey' object has no attribute 'get_lookup'
Here is the code I am using :
class Favorite(models.Model):
"""
Favorited object by an user
"""
user = models.ForeignKey(settings.AUTH_USER_MODEL,
verbose_name=_('User'), editable=False, db_index=True)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
object = GenericForeignKey('content_type', 'object_id')
date_of_favorite = models.DateTimeField(verbose_name=_('Favorite
date'), auto_now_add=True, db_index=True)
class Rating(models.Model):
"""
Rated object by an user
"""
user = models.ForeignKey(settings.AUTH_USER_MODEL,
verbose_name=_('User'), editable=False, db_index=True)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
object = GenericForeignKey('content_type', 'object_id')
date_of_favorite = models.DateTimeField(verbose_name=_('Rating date'),
auto_now_add=True, db_index=True)
class FavoriteSerializer(serializers.ModelSerializer):
user = UserSerializer(many=False)
object = GenericRelatedField({
Recipe: HyperlinkedRelatedField(many=False,
view_name='recipe-detail', read_only=True),
Ingredient: HyperlinkedRelatedField(many=False,
view_name='ingredient-detail', read_only=True),
Utensil: HyperlinkedRelatedField(many=False,
view_name='utensil-detail', read_only=True)
})
class Meta:
model = Favorite
fields = ('user', 'object', 'date_of_favorite')
class RatingSerializer(serializers.ModelSerializer):
user = UserSerializer(many=False)
object = GenericRelatedField({
Recipe: HyperlinkedRelatedField(many=False,
view_name='recipe-detail', read_only=True),
Ingredient: HyperlinkedRelatedField(many=False,
view_name='ingredient-detail', read_only=True),
Utensil: HyperlinkedRelatedField(many=False,
view_name='utensil-detail', read_only=True)
})
class Meta:
model = Rating
fields = ('user', 'object', 'date_of_rating')
class RatingViewSet(viewsets.ModelViewSet):
queryset = Rating.objects.all()
serializer_class = RatingSerializer
filter_fields = ('user', 'object', 'content_type', 'object_id')
class FavoriteViewSet(viewsets.ModelViewSet):
queryset = Favorite.objects.all()
serializer_class = FavoriteSerializer
filter_fields = ('user', 'object')
Am I doing something wrong ?
Thank you.
Best regards,
Mathieu
--
You received this message because you are subscribed to the Google Groups
"Django REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.