猿问

Django:如何在同一视图中同时包含受限访问权限和模型?

我有一个django音乐项目,其网站名为Add-Album。我只希望注册用户上传相册。


当我在views.py中添加了受限访问权限时,我不得不将视图从类视图更改为函数视图。但是后来我遇到了问题。没有模板,一切工作正常。模板中未显示任何表单(在班级查看时显示)。


我的问题是如何在同一视图中同时包含受限访问权限和模型?


#Views.py

# ....

# My model and fields

#    model = Album

#    fields = ['artist', 'album_title', 'genre', 'album_logo']


# before this was a class view with the model and fields

def AlbumCreate(request):

    model = Album

    fields = ['artist', 'album_title', 'genre', 'album_logo']

    if not request.user.is_authenticated:

        return redirect('{}?next={}'.format(settings.LOGIN_URL, request.path))

    return render(request, 'Music/album_form.html')



class AlbumUpdate(UpdateView):

    model = Album

    fields = ['artist', 'album_title', 'genre', 'album_logo']



class AlbumDelete(DeleteView):

    model = Album

    success_url = reverse_lazy('Music:Music')


#  ....



#models

from django.db import models

from django.urls import reverse



class Album(models.Model):

    artist = models.CharField(max_length=100)

    album_title = models.CharField(max_length=150)

    genre = models.CharField(max_length=30)

    album_logo = models.ImageField(upload_to='albumlogo/')


    def get_absolute_url(self):

        return reverse('Music:detail', kwargs={'pk': self.pk})


    def __str__(self):

        return self.album_title + ' - ' + self.artist


#urls.py


#...

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

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

url(r'album/add/$', views.AlbumCreate, name='album-add'),

#...


白猪掌柜的
浏览 167回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答