diff --git a/bookmarks/templates/bookmarks/bookmark_form.html b/bookmarks/templates/bookmarks/bookmark_form.html new file mode 100644 index 0000000..1fffdc1 --- /dev/null +++ b/bookmarks/templates/bookmarks/bookmark_form.html @@ -0,0 +1,6 @@ +

Add a bookmark

+
+ {% csrf_token %} + {{ form.as_p }} + +
\ No newline at end of file diff --git a/bookmarks/urls.py b/bookmarks/urls.py index 216b571..db3da9f 100644 --- a/bookmarks/urls.py +++ b/bookmarks/urls.py @@ -4,5 +4,6 @@ from . import views app_name = 'bookmarks' urlpatterns = [ - path('', views.BookmarkListView.as_view(), name='bookmark-list') + path('', views.BookmarkListView.as_view(), name='bookmark-list'), + path('create', views.BookmarkCreate.as_view(), name='bookmark-create') ] \ No newline at end of file diff --git a/bookmarks/views.py b/bookmarks/views.py index b36ff86..e1ae0f0 100644 --- a/bookmarks/views.py +++ b/bookmarks/views.py @@ -1,5 +1,7 @@ from .models import Bookmark +from django.urls import reverse_lazy from django.views.generic.list import ListView +from django.views.generic import CreateView from django.contrib.auth.mixins import LoginRequiredMixin from .models import Bookmark @@ -11,7 +13,11 @@ class BookmarkListView(LoginRequiredMixin, ListView): def get_queryset(self): return Bookmark.objects.filter(user_id=self.request.user.id) - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - context['userid'] = self.request.user.id - return context +class BookmarkCreate(LoginRequiredMixin, CreateView): + model = Bookmark + fields = ['title','url'] + success_url = reverse_lazy('bookmarks:bookmark-list') + + def form_valid(self, form): + form.instance.user = self.request.user + return super().form_valid(form)