TypeError at / myapp / beds / - PullRequest
       7

TypeError at / myapp / beds /

0 голосов
/ 13 марта 2019

get () отсутствует 1 обязательный позиционный аргумент: 'mat_number'

Я новичок в программировании, пожалуйста, как я могу разрешить вышеуказанную ошибку TypeError, следуя приведенным ниже инструкциям:

class BedsView(View):
    def get_user_details(self, username, mat_number):
        try:
            user = User.objects.get(username=username)
        except User.DoesNotExist:
            return redirect('index') 
        userbeds = Userbed.objects.filter(user=user, mat_number=mat_number).order_by(-posted_date)[0]
        form = UserBedsForm({'mat_number':userbeds.mat_number})
        return (user, userbeds,form)

    @method_decorator(login_required)
    def get(self, request, username, mat_number):
        (user,userbeds,form) = self.get_user_details(username, mat_number)
        return render(request, 'myapp/beds.html', {'userbeds':userbeds, 'selecteduser':user, 'form':form})

    @method_decorator(login_required)
    def post(self, request, username):
        (user, userbeds, form) = self.get_user_details(username, mat_number)
        form = UserBedsForm(request.POST, instance=userbeds)
        if form.is_valid():
            form.save(commit=True)
            return redirect('beds', user. username)
        else:
            print(form.errors)
        return render(request, 'myapp/beds.html', {'userbeds':userbeds, 'selecteduser':user, 'form':form})

Вmyapp urls.py,

   from django.urls import path
   from myapp import views 
   from myapp.views import BedsView 

   app_name = 'myapp'

   urlpatterns = [
          path('beds/<username>/', BedsView.as_view(), name='beds'), 
   ]

В myproject urls.py,

  from django.contrib import admin 
  from django.urls import path, include 
  from myapp import views 


   urlpatterns = [
          path(' ', views.index, name='index'), 
          path('admin/', admin.site.urls),
          path('myapp/', include('myapp.urls')), 
   ]

Как мне отсортировать эту ошибку TypeError, пожалуйста? ...

1 Ответ

1 голос
/ 13 марта 2019

Ваш код читает:

def get_user_details(self, username, mat_number):
# ...
(user, userbeds, form) = self.get_user_details(username)

get_user_details необходимо вызывать с двумя параметрами: username и mat_number. Вы предоставили только один: username. Поэтому либо укажите mat_number в вызове метода, либо измените сигнатуру метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...