Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.urls import path, re_path
- from . import views
- app_name = 'music'
- urlpatterns = [
- path('register/', views.register, name='register'),
- path('login_user/', views.login_user, name='login_user'),
- path('logout_user/', views.logout_user, name='logout_user'),
- #path('<int:album_id>/', views.detail, name='detail'),
- path('<int:pk>/', views.DetailView.as_view(), name='detail'),
- #re_path(r'^(?P<album_id>[0-9]+)/$', views.detail, name='detail'),
- #path('<int:album_id>/favorite/', views.favorite, name='favorite'),
- path('album/add', views.AlbumCreate.as_view(), name='album-add'),
- path('album/<int:pk>/', views.AlbumUpdate.as_view(), name='album-update'),
- path('album/<int:pk>/delete/', views.AlbumDelete.as_view(), name='album-delete'),
- path('index/', views.IndexView.as_view(), name='index'),
- path('', views.login_user)
- # path('', views.index, name='index'),
- ]
- from django.shortcuts import render, redirect
- from django.contrib.auth import authenticate, login, logout
- from django.views import generic
- from django.views.generic import View
- from django.views.generic.edit import CreateView, UpdateView, DeleteView
- from django.urls import reverse_lazy
- from django.contrib.auth.decorators import login_required
- from .models import Album, Song
- from django.db.models import Q
- from .forms import UserForm
- class IndexView(generic.ListView):
- template_name = 'music/index.html'
- def get_queryset(self):
- return Album.objects.all()
- class DetailView(generic.DetailView):
- model = Album
- template_name = 'music/detail.html'
- class AlbumCreate(CreateView):
- model = Album
- fields = ['artist', 'alum_title', 'genre', 'album_logo']
- class AlbumUpdate(UpdateView):
- model = Album
- fields = ['artist', 'alum_title', 'genre', 'album_logo']
- class AlbumDelete(DeleteView):
- model = Album
- success_url = reverse_lazy('music:index')
- @login_required(login_url="/login_user/")
- class UserFormView(View):
- form_class = UserForm
- template_name = 'music/registration_form.html'
- def get(self, request):
- form = self.form_class(None)
- return render(request, self.template_name,{'form':form})
- def post(self, request):
- form = self.form_class(request.POST)
- if form.is_valid():
- user = form.save(commit=False)
- username = form.cleaned_data['username']
- password = form.cleaned_data['password']
- user.set_password(password)
- user.save()
- user = authenticate(username=username, password=password)
- if user is not None :
- if user.is_active:
- login(request, user)
- return redirect('music:index')
- return render(request, self.template_name,{'form' : form})
- context = {
- "form": form,
- }
- return render(request, 'music/registration_form.html', context)
- def logout_user(request):
- logout(request)
- form = UserForm(request.POST or None)
- context = {
- "form": form,
- }
- return render(request, 'music/login.html', context)
- def login_user(request):
- if request.method == "POST":
- username = request.POST['username']
- password = request.POST['password']
- user = authenticate(username=username, password=password)
- if user is not None:
- if user.is_active:
- login(request, user)
- albums = Album.objects.filter(user=request.user)
- return render(request, 'music/index.html', {'albums': albums})
- else:
- return render(request, 'music/login.html', {'error_message': 'Your account has been disabled'})
- else:
- return render(request, 'music/login.html', {'error_message': 'Invalid login'})
- else:
- return render(request, 'music/login.html')
- def register(request):
- form = UserForm(request.POST or None)
- if form.is_valid():
- user = form.save(commit=False)
- username = form.cleaned_data['username']
- password = form.cleaned_data['password']
- user.set_password(password)
- user.save()
- user = authenticate(username=username, password=password)
- if user is not None:
- if user.is_active:
- login(request, user)
- albums = Album.objects.filter(user=request.user)
- return render(request, 'music/index.html', {'albums': albums})
- context = {
- "form": form,
- }
- return render(request, 'music/register.html', context)
- from django.contrib.auth.models import Permission, User
- from django.db import models
- from django.urls import reverse
- class Album(models.Model):
- user = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
- artist = models.CharField(max_length=20)
- alum_title = models.CharField(max_length=20)
- genre = models.CharField(max_length=10)
- album_logo = models.FileField()
- def get_absolute_url(self):
- return reverse('music:detail', kwargs={'pk':self.pk})
- def __str__(self):
- return self.alum_title + self.artist
- class Song(models.Model):
- album = models.ForeignKey(Album, on_delete=models.CASCADE)
- file_type = models.CharField(max_length=10)
- song_title = models.CharField(max_length=20)
- is_favorite = models.BooleanField(default=False)
- def __str__(self):
- return self.song_title
Add Comment
Please, Sign In to add comment