Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在CreateView中动态设置ForeignKey的初始值?_Python_Django_Foreign Keys - Fatal编程技术网

Python 如何在CreateView中动态设置ForeignKey的初始值?

Python 如何在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]+)/(

我想在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]+)/(?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',
        }