Czy można uzyskać aktualnego użytkownika w serializatorze modelu? Chciałbym to zrobić bez konieczności odgałęzienia się od generycznych, ponieważ jest to proste zadanie, które trzeba wykonać.Otrzymuj bieżącego użytkownika w Model Serializatorze
Mój model:
class Activity(models.Model):
number = models.PositiveIntegerField(
blank=True, null=True, help_text="Activity number. For record keeping only.")
instructions = models.TextField()
difficulty = models.ForeignKey(Difficulty)
categories = models.ManyToManyField(Category)
boosters = models.ManyToManyField(Booster)
class Meta():
verbose_name_plural = "Activities"
Moja serializer:
class ActivitySerializer(serializers.ModelSerializer):
class Meta:
model = Activity
A mój widok:
class ActivityDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Activity.objects.all()
serializer_class = ActivityDetailSerializer
Jak mogę dostać model wrócił z dodatkowym polu user
takie, że moja odpowiedź wygląda następująco:
{
"id": 1,
"difficulty": 1,
"categories": [
1
],
"boosters": [
1
],
"current_user": 1 //Current authenticated user here
}
Jak uzyskać dostęp do tej zmiennej? Podobnie ustawiłem kopalnię, ale w metodzie create() nie mogę uzyskać dostępu do zmiennej. Nie ma go również w request.POST. – Craig
Użyłem powyższego kodu, ale podając następujący błąd: Plik "/Users/abc/abc/Django/Work/abc/abc/src/MadhaparGamApps/serializers/newsfeedSerializer.py", wiersz 21, w _user użytkownik = self.context ['request']. user KeyError: 'request' –
Dla każdego, kto otrzymuje żądanie KeyError: Możesz rozwiązać ten problem poprzez zainicjalizowanie serializera z widoku za pomocą obiektu żądania w następujący sposób: serializer = serializers.RandomSerializer (data = request.data, context = {'request': request}) Źródło: http://www.django-rest-framework.org/api-guide/serializers/#saving-instances –