第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

添加“if”語句,當點贊數(shù)達到一定值時發(fā)送電子郵件

添加“if”語句,當點贊數(shù)達到一定值時發(fā)送電子郵件

倚天杖 2023-11-09 22:22:17
我正在嘗試添加 IF 語句,以便當點贊數(shù)達到 2 時發(fā)送電子郵件。我已經(jīng)編寫了代碼,但它不起作用,我正在嘗試以下代碼,但它不起作用。我的問題是如何添加 if 語句,以便當任何具有 like more the 2 的項目時,都會向電子郵件發(fā)送特定的電子郵件。這是 models.pyclass Post(models.Model):    title = models.CharField(max_length=100, unique=True)    likes = models.ManyToManyField(        User, related_name='liked', blank=True)    def __str__(self):        return self.title    def total_likes(self):        return self.likes.count()這是views.pyclass PostDetailView(DetailView):    model = Post    template_name = "post_detail.html"    def get_context_data(self, *args, **kwargs):        context = super(PostDetailView, self).get_context_data()        post = get_object_or_404(Post, slug=self.kwargs['slug'])        comments = Comment.objects.filter(            post=post, reply=None).order_by('-id')        total_likes = post.total_likes()        liked = False        if post.likes.filter(id=self.request.user.id).exists():            liked = True        if self.request.method == 'POST':            comment_form = CommentForm(self.request.POST or None)            if comment_form.is_valid():                content = self.request.POST.get('content')                reply_id = self.request.POST.get('comment_id')                comment_qs = None                if reply_id:                    comment_qs = Comment.objects.get(id=reply_id)                comment = Comment.objects.create(                    post=post, user=self.request.user, content=content, reply=comment_qs)                comment.save()                return HttpResponseRedirect("post_detail.html")        else:            comment_form = CommentForm()        context["total_likes"] = total_likes        context["liked"] = liked        context["comments"] = comments        context["comment_form"] = comment_form        return context    def get(self, request, *args, **kwargs):        res = super().get(request, *args, **kwargs)        self.object.incrementViewCount()        return res
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻1848條經(jīng)驗 獲得超2個贊

如果您希望這種情況在任何地方發(fā)生,我建議向模型save()的方法添加一個覆蓋Post,并在它增加到兩個喜歡時向那里發(fā)送電子郵件。您還可以使用 Django 的send_mail函數(shù),它是發(fā)送電子郵件的一個很好的包裝器。胖模型、瘦視圖、愚蠢模板是 Django 最佳實踐的口頭禪。也許是這樣的:


from django.core.mail import send_mail


class Post(models.Model):

    title = models.CharField(max_length=100, unique=True)

    likes = models.ManyToManyField(

        User, related_name='liked', blank=True)


    def __str__(self):

        return self.title


    def save(self, *args, **kwargs): 

        if self.total_likes() == 2:

            send_mail(

                "my subject",

                "my text message",

                "myemail@myhost.com",

                ["myuser@theirhost.com"],

                html_message="<h1>My HTML Message</h1>",

            )

        super().save(*args, **kwargs) 


    def total_likes(self):

        return self.likes.count()

祝你好運!


查看完整回答
反對 回復 2023-11-09
  • 1 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號