模型.py
class Wishlist(models.Model):
home = models.ForeignKey(Home, on_delete=models.CASCADE, blank=False, null=False)
user = models.ForeignKey(User, on_delete=models.CASCADE, blank=False, null=False)
def __str__(self):
return "{} - {}".format(self.user.username, self.home.address)
class Meta:
ordering = ('user',)
Run Code Online (Sandbox Code Playgroud)
网址.py
urlpatterns = [
path(r'wishlist/<int:pk>/', views.WishlistGetUserItems.as_view(), name='wish-user-list'),
]
Run Code Online (Sandbox Code Playgroud)
视图.py
class WishlistGetUserItems(APIView):
def get(self, request, pk):
wishlist = get_list_or_404(Wishlist, user=pk)
data = serializers.UserWishlistSerializer(wishlist).data
Response(data, status=status.HTTP_200_OK)
Run Code Online (Sandbox Code Playgroud)
我也试过打印消息,但似乎没有调用该方法
python django django-views django-errors django-rest-framework
我有以下型号:
class Category(models.Model):
....
posts = models.PositiveIntegerField(_('numero post'), default=0)
....
class Post(models.Model):
....
categories = models.ManyToManyField(Category, blank=True, verbose_name=_('categorie'))
....
Run Code Online (Sandbox Code Playgroud)
该Category.posts字段计算与其所属类别相关的帖子数量。CreateView我通过以下方式将计数器增加到:
class CreatePostView(LoginRequiredMixin, CreateView):
model = Post
...
def form_valid(self, form, **kwargs):
...
categories = self.object.categories.all()
for category in categories:
category.posts = category.posts + 1
category.save()
self.object.save()
return super(CreatePostView, self).form_valid(form)
Run Code Online (Sandbox Code Playgroud)
当我删除博客文章时,我需要在删除博客文章时减少计数器Post。我尝试这样做:
class DeletePostView(LoginRequiredMixin, DeleteView):
model = Post
...
def form_valid(self, form, **kwargs):
...
categories = post.categories.all()
for category in categories:
if (category.posts - 1) > …Run Code Online (Sandbox Code Playgroud)