我有一个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'),
#...
相关分类