I want to access every API element by URL like this "/api/v1/element_id"
I have explicitly defined the pk in serializers
serializers.py
class TweetSerializer(serializers.ModelSerializer):
tweet_id = serializers.IntegerField()
class Meta:
fields = ('tweet_id', 'author', 'text', 'created_at', 'retweet_count', 'favourite_count',)
model = Tweet
But it does not work. I get Not found error
models.py
class Tweet(models.Model):
#tweet_id = models.ForeignKey(User, on_delete=models.CASCADE)
tweet_id = models.IntegerField()
created_at = models.CharField(max_length=100)
text = models.TextField()
author = models.CharField(max_length=100)
retweet_count = models.IntegerField()
favourite_count = models.IntegerField()
def __str__(self):
return str(self.tweet_id)
views.py
class TweetList(generics.ListCreateAPIView):
queryset = Tweet.objects.all()
serializer_class = TweetSerializer
class TweetDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Tweet.objects.all()
serializer_class = TweetSerializer
urls.py
urlpatterns = [
path('<int:pk>/', TweetDetail.as_view()),
path('', TweetList.as_view()),
]
Listing all tweets works fine, /api/v1/, but single tweet is not returned.
I have tried to set a ForeignKey in the models but then I get an error column tweet_id_id not found.
/api/v1/1234/where1234is your PK ofTweetinstance