Python 如何在CreateView中动态设置ForeignKey的初始值?
我想在CreateView中动态设置ForeignKey的初始值。但是有什么简单的方法可以做到这一点吗? 我试着喜欢(作为这个链接的答案)。但它不起作用。 如何将相册(ForeignKey)传递到CreateView中的字段 models.py views.py url.pyPython 如何在CreateView中动态设置ForeignKey的初始值?,python,django,foreign-keys,Python,Django,Foreign Keys,我想在CreateView中动态设置ForeignKey的初始值。但是有什么简单的方法可以做到这一点吗? 我试着喜欢(作为这个链接的答案)。但它不起作用。 如何将相册(ForeignKey)传递到CreateView中的字段 models.py views.py url.py urlpatterns=[ #/图片// url(r'^(?P[0-9]+)/$',views.DetailView.as_view(),name='detail'), #/图片// url(r'^(?P[0-9]+)/(
urlpatterns=[
#/图片//
url(r'^(?P[0-9]+)/$',views.DetailView.as_view(),name='detail'),
#/图片//
url(r'^(?P[0-9]+)/(?P[0-9]+)/$”,views.ItemDetailView.as_view(),name='item-detail'),
#/picture//pic/add
url(r'^(?P[0-9]+)/pic/add/$',views.ItemCreate.as_view(),name='item-add'),
]
如果要获取对象(album
),其中album.pk=id
(id
是'item-add'
的URL参数),请尝试此操作
class ItemCreate(CreateView):
model = Item
fields = ['album', 'file_type', 'caption']
def get_initial(self):
album = get_object_or_404(Album, pk=self.kwargs['id'])
return {
'album': album,
'file_type': 't',
}
如果要获取对象(
album
),其中album.pk=id
(id
是'item-add'
)的URL参数,请尝试此操作
class ItemCreate(CreateView):
model = Item
fields = ['album', 'file_type', 'caption']
def get_initial(self):
album = get_object_or_404(Album, pk=self.kwargs['id'])
return {
'album': album,
'file_type': 't',
}
用
get\u object\u或_404(相册,pk=self.kwargs.get('Album.pk'))
替换此get\u object\u或_404(Item,pk=self.kwargs.get('Album'))
时会发生什么?404没有相册与给定查询匹配。当您将此get\u object\u或_404(相册,pk=self.kwargs.get('Album.pk'))
替换为get\u object\u或_404(Item,pk=self.kwargs.get('Album'))
时会发生什么情况?404没有相册与给定查询匹配。同时
urlpatterns = [
# /picture/<album_id>/
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
# /picture/<album_id>/<pic_id>
url(r'^(?P<id>[0-9]+)/(?P<pk>[0-9]+)/$', views.ItemDetailView.as_view(), name='item-detail'),
# /picture/<album_id>/pic/add
url(r'^(?P<id>[0-9]+)/pic/add/$', views.ItemCreate.as_view(), name='item-add'),
]
class ItemCreate(CreateView):
model = Item
fields = ['album', 'file_type', 'caption']
def get_initial(self):
album = get_object_or_404(Album, pk=self.kwargs['id'])
return {
'album': album,
'file_type': 't',
}