class Blog():
likes = models.ManyToManyField(User, through="myapp.Like")
class Like():
user = models.ForeignKey(Like)
blog = models.ForeignKey(Blog)
liked_at = models.DateTimeField(auto_now_add=True)
some_bool_field = models.BooleanField(default=False)
現在在視圖中:
def like_blog(request, id):
blog = Blog.objects.get(id=id)
blog.users.add(request.user)
# now how can I update some_bool_field and How can I make use of this field
將來我可以像blog.users.filter(some_bool_field=False)這樣使用一些查詢,我想更新這個欄位。
或者我錯過了通過模型的用途?
uj5u.com熱心網友回復:
如果你想更新直通模型物件,你可以這樣做:
def like_blog(request, id):
blog = Blog.objects.get(id=id)
blog.users.add(request.user)
# query your through model
Like.objects.filter(user=request.user, blog=blog).update(some_bool_field=True)
使用以下命令獲取所有博客過濾的喜歡some_bool_field=True:
true_boolean_likes = Blog.objects.filter(likes__some_bool_field=True)
uj5u.com熱心網友回復:
對于通過模型更新,您可以使用波紋管方法進行更新
like = Blog.objects.get(id=id)
for like in Likes.objects.filter(likes__some_bool_field =False): #or true by what you want to filter
like.the_field_want_to_update.update(id=like.id)
此處.update更新您在此處過濾的值,id因此它將更新傳遞給它的資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/346377.html
標籤:姜戈 django-models django-views
