在Django的URL模式中使用对象属性

问题描述 投票:0回答:1

在我的Django应用中,我基本上具有位置和预订,其中,预订是由用户创建并分配给位置的。

我现在编写了一个视图,该视图应该列出某个用户(与位置无关)创建的所有预订。但是,我无法使URL模式起作用,因为似乎无法在urlpattern中使用用户对象的属性。

我的方法只是行不通还是我忽略了什么?

Request Method: GET
Request URL:    http://127.0.0.1:8000/bookings/user/aaaaaaaa/
Django Version: 2.2.5
Exception Type: TypeError
Exception Value:    
booking_list_user() got an unexpected keyword argument 'url_short'

我的代码:

views.py

def booking_list_user(request, user):
    bookings = Booking.objects.get(requested_by=user)
    return render(request, 'booking_list.html', {'bookings': bookings, 'user': user})

models.py

class Booking(models.Model):
    requested_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='booking_requested_by',
                                     on_delete=models.SET('--user deleted--'))
    location = models.ForeignKey(Location, related_name='booking_location', on_delete=models.CASCADE)
    ...

urls.py

urlpatterns = [
    path('all/', booking_list_all, name='booking_list_all'),
    path('user/<user.url_short>/', booking_list_user, name='booking_list_user'),
    path('<slug>/new/', booking_add, name='booking_add'),
    path('<url_short>/', booking_view, name='booking_view'),
]
python django django-urls
1个回答
-1
投票

很棒,非常感谢

© www.soinside.com 2019 - 2024. All rights reserved.