亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

從數據庫獲取最新對象,無論 django 中的用戶如何

從數據庫獲取最新對象,無論 django 中的用戶如何

Go
不負相思意 2022-10-05 09:29:34
我正在學習蟒蛇和django,我正在編寫一個類似于IMDB的項目。我正在使用python 3.8.2 64位和django 3我想顯示電影收到的最新評論,無論編寫它的用戶是誰?,F在,它顯示用戶自己的最新評論,并且在注銷用戶后,評論將保留,而不會顯示編寫它的用戶。我試圖清除緩存和歷史記錄,沒有幫助。這是模型:from django.db import modelsfrom django.contrib.auth.models import Userclass Movie(models.Model):    movie_title = models.CharField(max_length=250)    movie_poster = models.ImageField(default='default.png', blank=True)    movie_short_description = models.TextField()    director = models.CharField(max_length=250)    actor1 = models.CharField(max_length=250)    actor2 = models.CharField(max_length=250)    actor3 = models.CharField(max_length=250)    actor4 = models.CharField(max_length=250)    year = models.IntegerField()    def __str__(self):        return self.movie_title + ' - ' + str(self.year)class Review(models.Model):    movie = models.ForeignKey(Movie, on_delete=models.CASCADE)    user = models.ForeignKey(User, default = None, on_delete=models.DO_NOTHING)    score = models.IntegerField()    review_title = models.CharField(max_length=250, default="")    movie_review = models.TextField()    date = models.DateTimeField(auto_now_add=True)    class Meta:        get_latest_by = 'date'    def __str__(self):        return self.review_titleviews.pydef movie_detail(request, pk):    try:        movie  = Movie.objects.get(pk=pk)        review = Review.objects.all().latest()    except Exception as e:        print(e)    return render (request, 'movies/movie_detail.html', {'movie': movie, 'review': review})代碼:                </table>            </p>            <p>User Reviews</p>            <h3>Score: {{review.score}}  {{review.review_title}}</h3>            <h6>{{review.date}}, by {{ user.get_username }}</h6>            <p>{{review.movie_review}}</p>            <a href="{% url 'add_review' pk=movie.pk %}">Review this title</a>        </div>    </div>{% endblock %}
查看完整描述

1 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

我會創建一個屬性,為您提供所有評論,然后從此查詢集中獲取最新信息。代碼如下:MovieReview


# models.py

class Movie(models.Model):

    # your other code


    @property

    def reviews(self) -> QuerySet:

        return self.review_set.all()



# views.py

def movie_detail(request, pk):

    movie = get_object_or_404(Movie, pk=pk)

    latest_review = movie.reviews.latest()

    # return

Ps:我會重命名 ,并且只是 和 。很明顯,這是電影的標題。我還強烈建議將 4 s 更改為具有 -relation 的單個模型(但我認為您稍后會在文檔中閱讀)。movie_titlemovie_postermovie_short_descriptiontitlepostershort_descriptiontitleMovieactorManyToMany


查看完整回答
反對 回復 2022-10-05
  • 1 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號