在我的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'),
]
很棒,非常感谢