Size: a a a

Django [ru] #STAY HOME

2019 October 09

MS

Maksym Sivash in Django [ru] #STAY HOME
'QuerySet' object has no attribute 'pk' django rest framework
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
HoBot Khd
прохожу туториал django на офф сайте
https://docs.djangoproject.com/en/2.2/intro/tutorial02/
вроде бы внимательно читал
но после выполнения команды
python manage.py makemigrations polls
получил
Migrations for 'polls':
 polls/migrations/0001_initial.py:
   - Create model Choice
   - Create model Question
   - Add field question to choice

без последней строки ...
- Add field question to choice
покажи код модели Choice
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Maksym Sivash
'QuerySet' object has no attribute 'pk' django rest framework
many=True наверное надо в аргументы сериализатора?
источник

D

Dmitry in Django [ru] #STAY HOME
Maksym Sivash
'QuerySet' object has no attribute 'pk' django rest framework
а код?
источник

MS

Maksym Sivash in Django [ru] #STAY HOME
Pavel Zagrebelin
many=True наверное надо в аргументы сериализатора?
class LockSerializer(serializers.ModelSerializer):
   class Meta:
       model = Lock
       fields = __all__
источник

MS

Maksym Sivash in Django [ru] #STAY HOME
class LockView(generics.UpdateAPIView):
   serializer_class = LockSerializer
   queryset = Lock.objects.all()

   def get_object(self):
       return self.get_queryset()
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Maksym Sivash
class LockView(generics.UpdateAPIView):
   serializer_class = LockSerializer
   queryset = Lock.objects.all()

   def get_object(self):
       return self.get_queryset()
в последней строке, тебя просят объект, а ты отдаёшь кверисет
источник

MS

Maksym Sivash in Django [ru] #STAY HOME
Maksym Sivash
class LockSerializer(serializers.ModelSerializer):
   class Meta:
       model = Lock
       fields = __all__
куда
источник

D

Dmitry in Django [ru] #STAY HOME
Maksym Sivash
class LockView(generics.UpdateAPIView):
   serializer_class = LockSerializer
   queryset = Lock.objects.all()

   def get_object(self):
       return self.get_queryset()
get_object должен возвращать обхект а не кверисет
источник

MS

Maksym Sivash in Django [ru] #STAY HOME
Pavel Zagrebelin
в последней строке, тебя просят объект, а ты отдаёшь кверисет
как я должен объект ему вернуть?
источник

MS

Maksym Sivash in Django [ru] #STAY HOME
где вообще лежит то что приходит с клиента
источник

D

Dmitry in Django [ru] #STAY HOME
Maksym Sivash
как я должен объект ему вернуть?
какой объект ты патчишь?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Maksym Sivash
как я должен объект ему вернуть?
а зачем ты переопределил get_object ?
источник

MS

Maksym Sivash in Django [ru] #STAY HOME
class Lock(models.Model):
   mac = models.TextField(primary_key=True)
   mode = models.BooleanField()
   lock = models.BooleanField()
   light = models.BooleanField()
   block = models.BooleanField()
   cell = models.ForeignKey('Cell', on_delete=models.CASCADE)
источник

MS

Maksym Sivash in Django [ru] #STAY HOME
Dan Tyan
а зачем ты переопределил get_object ?
тогда другая проблема появлсяется
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Maksym Sivash
тогда другая проблема появлсяется
?
источник

MS

Maksym Sivash in Django [ru] #STAY HOME
Expected view LockView to be called with a URL keyword argument named "pk". Fix your URL conf, or set the `.lookup_field` attribute on the view correctly.
источник

D

Dmitry in Django [ru] #STAY HOME
урл покажи
источник

MS

Maksym Sivash in Django [ru] #STAY HOME
urlpatterns = [
   path('', main_view),
   url('locks/', csrf_exempt(LockView.as_view())),
]
источник

D

Dmitry in Django [ru] #STAY HOME
url('locks/<int:pk>', csrf_exempt(LockView.as_view()))
источник