【问题标题】:Adding an object to a specific foreign key using CreateView django使用 CreateView django 将对象添加到特定外键
【发布时间】:2017-08-19 17:09:00
【问题描述】:

在我看来:

class SongCreate(CreateView):
    model = Song
    fields = ['album', 'name']

我将歌曲(this)添加到专辑的功能在专辑 A 的详细信息模板中。但是,我希望输入只是名称而不是专辑,因为歌曲的专辑应该自动为“A. "如何使上面的代码表现得这样?

来自我的网址:

url(r'album/(?P<pk>[0-9]+)/song/add/$', views.SongCreate.as_view(), name='song-add') 

【问题讨论】:

标签: django django-class-based-views


【解决方案1】:

你可以使用get_initial方法:

class SongCreate(CreateView):
    model = Song
    fields = ['album', 'name']

    def get_initial(self):
        return {
            'album': Album.objects.get(id=self.kwargs.get('pk')),
        }

或者你可以使用form_valid方法:

class SongCreate(CreateView):
    model = Song
    fields = ['name']

    def form_valid(self, form):
        form.instance.album = Album.objects.get(id=self.kwargs.get('pk'))
        return super(SongCreate, self).form_valid(form)

【讨论】:

    猜你喜欢
    • 2018-05-02
    • 1970-01-01
    • 2018-11-04
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    相关资源
    最近更新 更多