reading-notes

In-Class Notes

Setting up CRUD

urlpatterns = [
  path("", ThingListView.as_view(), name='thing_list'),
  path('<int:pk>/', ThingDetailView.as_view(), name='thing_detail'),
  path('create/', ThingCreateView.as_view(), name='thing_create'),
  path('<int:pk>/update/', ThingUpdateView.as_view(), name='thing_update'),
  path('<int:pk>/delete/', ThingDeleteView.as_view(), name='thing_delete'),
]
from django.db import models
from django.contrib.auth import get_user_model
from django.urls import reverse

class Thing(models.Model):
  name = models.CharField(max_length=256)
  rating = models.IntegerField(default=0)
  reviewer = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
  image_url = models.URLField(default='https://http.cat/404')
  reference_url = models.URLField(default='https://http.cat/404')
  description = models.TextField(default='')

  def __str__(self):
    return self.name

  def get_absolute_url(self):
    return reverse('thing_detail', args=[str(self.id)])
class ThingDeleteView(DeleteView):
  template_name = 'thing_delete.html'
  model = Thing
  success_url = reverse_lazy('thing_detail')